diff --git a/fs/fuse/file.c b/fs/fuse/file.c index 975f2697e866388d5c9e5ad9f80fc75f6e0953a1..3ac39c0288dee4737cba61aa0d9f6f1e0a050ec0 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c @@ -397,8 +397,12 @@ static int fuse_readpages(struct file *file, struct address_space *mapping, return -EINTR; err = read_cache_pages(mapping, pages, fuse_readpages_fill, &data); - if (!err) - fuse_send_readpages(data.req, file, inode); + if (!err) { + if (data.req->num_pages) + fuse_send_readpages(data.req, file, inode); + else + fuse_put_request(fc, data.req); + } return err; }