On Wed, 11 Apr 2007 07:51:57 -0700, "David R Bosso" <dbosso@xxxxxxxxxxxxx> said: > --On April 11, 2007 8:26:37 PM +1000 Bron Gondwana <brong@xxxxxxxxxxx> > wrote: > > > > > We also apply one patch to reiserfs. It's a one liner, using > > generic_write rather than the Hans Reiser special (5% faster, can > > deadlock under heavy load) > > Would you mind sending this to me? We've been very happy with reiserfs > for > years, but would love anything that can improve reliability. > > -David I may as well send them to the list! I think we got this patch from someone at SuSE (Chris Mason?) a long while back. There are two patches attached - the 2.6.19.2 patch was made in response to a posting on LKML about whether this patch was still needed for 2.6.19: http://lkml.org/lkml/2007/1/31/70 in which Vladimir V. Saveliev said "yes, you still need it, but you have to use do_sync_write now". I think that response may have been a private mail. PLEASE NOTE: we are still using 2.6.16 everywhere because, while the 2.6.19 kernel worked fine, we noticed seriously worse performance on the one machine we tried it on. This may have been due to the Areca driver, or something unrelated, but my personal suspicion is that it's the delayed bitmap loading. Unfortunately, we didn't have time to test it, so just backed out to 2.6.16 series kernels. Here's some information about tails and MMAP, which should be fixed in current kernels: http://lkml.org/lkml/2007/2/1/91 But we never had that issue because we use notail everywhere! -- Bron Gondwana brong@xxxxxxxxxxx
diff -ur linux-2.6.14.1/fs/reiserfs/file.c linux-2.6.14.1-reiserfix-big/fs/reiserfs/file.c --- linux-2.6.14.1/fs/reiserfs/file.c Thu Oct 27 20:02:08 2005 +++ linux-2.6.14.1-reiserfix-big/fs/reiserfs/file.c Thu Nov 10 18:37:16 2005 @@ -1336,6 +1336,8 @@ return result; } + return generic_file_write(file, buf, count, ppos); + if (unlikely((ssize_t) count < 0)) return -EINVAL;
--- linux-2.6.19.2/fs/reiserfs/file.c 2006-11-29 16:57:37.000000000 -0500 +++ linux-2.6.19.2-syncwrite/fs/reiserfs/file.c 2007-02-02 01:01:36.000000000 -0500 @@ -1358,6 +1358,8 @@ return result; } + return do_sync_write(file, buf, count, ppos); + if (unlikely((ssize_t) count < 0)) return -EINVAL;
---- Cyrus Home Page: http://cyrusimap.web.cmu.edu/ Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html