summaryrefslogtreecommitdiff
path: root/fs/fuse/dev.c
diff options
context:
space:
mode:
authorVarun Wadekar <vwadekar@nvidia.com>2012-01-05 10:05:34 +0530
committerVarun Wadekar <vwadekar@nvidia.com>2012-01-05 10:05:50 +0530
commit18b3e7967257168128dc3a16906de2880985ef6c (patch)
treed6efcb27791457c49fee449fb68e63e5a39a56d7 /fs/fuse/dev.c
parent790716386f61bb982a3e47f4f7fc934dcfdcd511 (diff)
parent55cc81a8a48f6f78a5e1e164d179dd043f80cb5f (diff)
Linux 3.1.7
Change-Id: I99507d7cfdcee064f808856dc2ce99d806fd864f
Diffstat (limited to 'fs/fuse/dev.c')
-rw-r--r--fs/fuse/dev.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
index fb6fc9553312..c858b5c83209 100644
--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
@@ -1516,7 +1516,7 @@ static int fuse_retrieve(struct fuse_conn *fc, struct inode *inode,
else if (outarg->offset + num > file_size)
num = file_size - outarg->offset;
- while (num) {
+ while (num && req->num_pages < FUSE_MAX_PAGES_PER_REQ) {
struct page *page;
unsigned int this_num;
@@ -1530,6 +1530,7 @@ static int fuse_retrieve(struct fuse_conn *fc, struct inode *inode,
num -= this_num;
total_len += this_num;
+ index++;
}
req->misc.retrieve_in.offset = outarg->offset;
req->misc.retrieve_in.size = total_len;