o_direct-11 and blkdev-pagecache-8
Here the latest release against 2.4.8pre3.
For the blkdev-pagecache I decreased performance going to 1k I/O granularity to provide total backwards compatibility, otherwise it was not possible to read the last bytes of the device if the size of the device was not a multiple of 4k and there's no way to work around that without intensive changes :(, this in turn means the doing O_DIRECT on the blkdevice now has a constraint of 1k I/O granularity on the read/write API (not anymore the more restrictive 4k granularity).
The O_DIRECT patch includes a one liner I got from the GFS folks to update the i_size of the inode correctly.
They must be applyed in order:
ftp://ftp.us.kernel.org/pub/linux/kernel/people/andrea/patches/v2.4/2.4.8pre3/o_direct-11 ftp://ftp.us.kernel.org/pub/linux/kernel/people/andrea/patches/v2.4/2.4.8pre3/blkdev-pagecache-8
Now it would be nice to have a patch incremental to those so that rawio also uses the preallocated per-file iobuf (note: the preallocation should happen in the rawio layer, not in the vfs like we just do with the generic O_DIRECT).
Andrea
blkdev-pagecache-11
This new update 1) runs get_super after fsync_dev in invalidate_device to avoid sleeping before the lock_super in case do_sync == 1, 2) replaces the softblocksize bugcheck in ll_rw_block with an hardblocksize bugcheck, now the softblocksize is a purerly filesystem thing, completly unrelated to the other ways of doing I/O (this fixes false positives of such bugcheck after a mount of a 4k fs).
ftp://ftp.us.kernel.org/pub/linux/kernel/people/andrea/patches/v2.4/2.4.8pre4/blkdev-pagecache-10
as usual you must apply the o_direct patch first (the o_direct patch has no updates and it stays at the -11 revision):
ftp://ftp.us.kernel.org/pub/linux/kernel/people/andrea/patches/v2.4/2.4.8pre4/o_direct-11
Andrea
Re: blkdev-pagecache-11
In reply to Andrea Arcangeliof course the subject was supposed to be "blkdev-pagecache-10" :), sorry
Andrea