Re: i_blksize

From: Andries.Brouwer@cwi.nl
Date: Tue Aug 05 2003 - 04:20:02 EST


    From: Andrew Morton <akpm@osdl.org>

> You propose to remove i_blksize.
> It is used in stat only, so we have to produce some value for stat.
> Do you want to replace
> inode->i_blksize
> by
> inode->i_sb->s_optimal_io_size
> ?

    No, that's different. You are referring to stat.st_blksize. That is a
    different animal, and we can leave that alone.

    inode->i_blksize is equal to (1 << inode->i_blkbits) always, all the time.
    It is just duplicated nonsense and usually leads to poorer code -
    multiplications instead of shifts.

    It should be a pretty easy incremental set of patches to ease i_blksize out
    of the kernel.

Hmm. Let me first read stat.c.

generic_fillattr():
        stat->blksize = inode->i_blksize;
vfs_getattr():
        generic_fillattr(inode, stat);
        if (!stat->blksize)
                stat->blksize = s->s_blocksize;
cp_new_stat64():
        tmp.st_blksize = stat->blksize;
        copy_to_user(statbuf, &tmp, sizeof(tmp));

So really, if inode->i_blksize has a nonzero value,
this value is returned in stat.st_blksize.

Remains your other claim: inode->i_blksize == (1 << inode->i_blkbits).
I don't see any code that would enforce that.

Andries

[and there are lots of comments around:
        inode->i_blksize = PAGE_SIZE; /* This is the optimal IO size ... */
]

Maybe also a good candidate for renaming if it is not eliminated?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Aug 07 2003 - 22:00:28 EST