On Mon, Nov 06, 2006 at 05:15:27PM -0600, Eric Sandeen wrote: > Christoph Hellwig wrote: > > On Mon, Nov 06, 2006 at 03:50:02PM -0600, Eric Sandeen wrote: > >> so I would propose the following patch to make PAGE_CACHE_SIZE the default (again), > >> and let filesystems which need something -else- do that on their own. > > > > I agree with the conclusion, but the patch is incomplete. You went down > > all the way to find out what the fileystems do in this messages, so add > > the hunks to override the defaults for non-standard filesystems to the > > patch aswell to restore the pre-inode diet state. > > Well, agreed. I put 80% or more back to pre-patch state, but not all. > :) So it's less broken with my patch than without, so at least it's > moving forward. So... Ted's patches get in w/o fixing up all the other > filesystems (left as an exercise to the patch reader) but mine can't? :) Note that *I* wasn't the one who changed it from PAGE_CACHE_SIZE to (1 << inode->i_blkbits). This was done by Andrew. (See below, from an e-mail dated September 19th). Given that Steve French was cc'ed, I assume this was done as a hack to fix CIFS, but it was a bad idea; I agree that PAGE_CACHE_SIZE is a way better default than (1 << inode->i_blkbits). As far as fixing all of the other filesystems, I did *try*; I know I screwed up with XFS, but that's because I still think the code is a screaming horror of indirections that make it impossible to understand what the heck is going on, and I guess I screwed up with CIFS. Some of the changes away from "pre inode diet" state were deliberate, though, since some filesystems had very clearly broken "optimal I/O sizes" of 512, and one even had something incredibly bogus that was something like 96 bytes (!) if I remember correctly. - Ted Subject: inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default-fix-fix From: Andrew Morton <akpm@xxxxxxxx> Cc: <sbenni@xxxxxx> Cc: Theodore Ts'o <tytso@xxxxxxx> Cc: Steven French <sfrench@xxxxxxxxxx>, Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- fs/stat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff -puN fs/stat.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default-fix-fi x fs/stat.c --- a/fs/stat.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default-fix- fix +++ a/fs/stat.c @@ -33,7 +33,7 @@ void generic_fillattr(struct inode *inod stat->ctime = inode->i_ctime; stat->size = i_size_read(inode); stat->blocks = inode->i_blocks; - stat->blksize = PAGE_CACHE_SIZE; + stat->blksize = (1 << inode->i_blkbits); } EXPORT_SYMBOL(generic_fillattr); _ - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html