OSDN Git Service

[PATCH] fuse: fix oops in fuse_send_readpages()
authorMiklos Szeredi <miklos@szeredi.hu>
Tue, 11 Apr 2006 05:54:49 +0000 (22:54 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 11 Apr 2006 13:18:47 +0000 (06:18 -0700)
commitd3406ffa4af8af1d7c14cff06e003eb0a557d4ad
treee521174613659a167f56e9890c403f9fa95a50ca
parent3e16f6afb267c0256416d481862ce8019c33417d
[PATCH] fuse: fix oops in fuse_send_readpages()

During heavy parallel filesystem activity it was possible to Oops the kernel.
The reason is that read_cache_pages() could skip pages which have already been
inserted into the cache by another task.  Occasionally this may result in zero
pages actually being sent, while fuse_send_readpages() relies on at least one
page being in the request.

So check this corner case and just free the request instead of trying to send
it.

Reported and tested by Konstantin Isakov.

Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/fuse/file.c