[PATCH] reiserfs: reiserfs_file_write implementation
From: Oleg Drokin <green@namesys.com> With the current 'one block at a time' algorithm, writes past the end of a file are slow because each new file block is separately added into the tree causing shifting of other items which is CPU expensive. With this new implementation if you write into file with big enough chunks, it uses half as much CPU. Also this version is more SMP friendly than the current one. There are some known-bad applications that break with this patch (ie. start to work very slow or even hang). This is because the filesystem returns a large value in the stat.st_blocksize hint (128k instead of 4k). This tickles a small number of application bugs. One is KDE's kmail 3.04 (fixed by upgrading to 3.1+) and the other is sleepycat's database from before 1997. If you hit a slowdown problem that you believe is related to the increased "recommended i/o size" value, try to mount your fs with nolargeio=1 mount option (remount should work too). This patch exports block_commit_write(), generic_osync_inode() and remove_suid() to modules.
Showing
This diff is collapsed.
Please register or sign in to comment