diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c index 341196338e48..f5d2d2340b44 100644 --- a/fs/fuse/dev.c +++ b/fs/fuse/dev.c @@ -1724,7 +1724,7 @@ static int fuse_retrieve(struct fuse_conn *fc, struct inode *inode, offset = outarg->offset & ~PAGE_CACHE_MASK; file_size = i_size_read(inode); - num = outarg->size; + num = min(outarg->size, fc->max_write); if (outarg->offset > file_size) num = 0; else if (outarg->offset + num > file_size)