Change the v9fs_file_readn function to limit the maximum transfer size
based on the iounit instead of msize.

Also remove the redundant check for limiting the transfer size in
v9fs_file_write. This check is done by p9_client_write.

Signed-off-by: M. Mohan Kumar <mo...@in.ibm.com>
---
 fs/9p/vfs_file.c |   10 ++--------
 1 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/fs/9p/vfs_file.c b/fs/9p/vfs_file.c
index 25b300e..b8c0891 100644
--- a/fs/9p/vfs_file.c
+++ b/fs/9p/vfs_file.c
@@ -160,7 +160,7 @@ v9fs_file_readn(struct file *filp, char *data, char __user 
*udata, u32 count,
                offset += n;
                count -= n;
                total += n;
-       } while (count > 0 && n == (fid->clnt->msize - P9_IOHDRSZ));
+       } while (count > 0 && n == fid->iounit);
 
        if (n < 0)
                total = n;
@@ -187,11 +187,7 @@ v9fs_file_read(struct file *filp, char __user *udata, 
size_t count,
        P9_DPRINTK(P9_DEBUG_VFS, "count %zu offset %lld\n", count, *offset);
        fid = filp->private_data;
 
-       if (count > (fid->clnt->msize - P9_IOHDRSZ))
-               ret = v9fs_file_readn(filp, NULL, udata, count, *offset);
-       else
-               ret = p9_client_read(fid, NULL, udata, *offset, count);
-
+       ret = v9fs_file_readn(filp, NULL, udata, count, *offset);
        if (ret > 0)
                *offset += ret;
 
@@ -225,8 +221,6 @@ v9fs_file_write(struct file *filp, const char __user * data,
        clnt = fid->clnt;
 
        rsize = fid->iounit;
-       if (!rsize || rsize > clnt->msize-P9_IOHDRSZ)
-               rsize = clnt->msize - P9_IOHDRSZ;
 
        do {
                if (count < rsize)
-- 
1.6.6.1


Reply via email to