diff options
Diffstat (limited to 'fs/fuse/file.c')
-rw-r--r-- | fs/fuse/file.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/fs/fuse/file.c b/fs/fuse/file.c index a7ef5e716f3c..296351615b00 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c | |||
@@ -335,9 +335,14 @@ static void fuse_send_readpages(struct fuse_req *req, struct file *file, | |||
335 | loff_t pos = page_offset(req->pages[0]); | 335 | loff_t pos = page_offset(req->pages[0]); |
336 | size_t count = req->num_pages << PAGE_CACHE_SHIFT; | 336 | size_t count = req->num_pages << PAGE_CACHE_SHIFT; |
337 | req->out.page_zeroing = 1; | 337 | req->out.page_zeroing = 1; |
338 | req->end = fuse_readpages_end; | ||
339 | fuse_read_fill(req, file, inode, pos, count, FUSE_READ); | 338 | fuse_read_fill(req, file, inode, pos, count, FUSE_READ); |
340 | request_send_background(fc, req); | 339 | if (fc->async_read) { |
340 | req->end = fuse_readpages_end; | ||
341 | request_send_background(fc, req); | ||
342 | } else { | ||
343 | request_send(fc, req); | ||
344 | fuse_readpages_end(fc, req); | ||
345 | } | ||
341 | } | 346 | } |
342 | 347 | ||
343 | struct fuse_readpages_data { | 348 | struct fuse_readpages_data { |