Messages in this thread | | | Date | Wed, 9 Apr 2008 21:52:44 +0200 | From | Jens Axboe <> | Subject | Re: [patch] fix infinite loop in generic_file_splice_read() |
| |
On Wed, Apr 09 2008, Andrew Morton wrote: > On Wed, 09 Apr 2008 17:57:56 +0200 > Miklos Szeredi <miklos@szeredi.hu> wrote: > > > generic_file_splice_read() goes into an infinite loop if it races with > > truncation. I've found this with fsx-linux on NFS over fuse. > > > > Perhaps the whole while() loop is bogus, but I can't tell from a > > cursory glance at __generic_file_splice_read() if it will return zero > > only on EOF, or it can do that for other reasons as well. In the > > latter case the loop is obviously needed. > > > > This simplistic patch fixes the issue for me. > > > > We found suspicious-looking code in generic_file_splice_read() back in > February. See http://lkml.org/lkml/2008/2/29/443. I suspect that patch > (if it works) will address the truncate lockup as well - it zaps the loop > entirely. > > Unfortunately Allard never got back to us (probably because he's running > 2.6.24 which has a quite different generic_file_splice_read()) and the > patch didn't get anywhere.
Hmm strange, I was pretty sure I pushed my patch back then. I'll double check and make sure it gets upstream asap.
> Nobody has tested this at all, to my knowledge.
The original reporter did not, however others did.
-- Jens Axboe
| |