aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/nfsd/nfs4xdr.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index 20fbcab97753..5f940d2a136b 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -144,7 +144,7 @@ static void next_decode_page(struct nfsd4_compoundargs *argp)
144 argp->p = page_address(argp->pagelist[0]); 144 argp->p = page_address(argp->pagelist[0]);
145 argp->pagelist++; 145 argp->pagelist++;
146 if (argp->pagelen < PAGE_SIZE) { 146 if (argp->pagelen < PAGE_SIZE) {
147 argp->end = argp->p + (argp->pagelen>>2); 147 argp->end = argp->p + XDR_QUADLEN(argp->pagelen);
148 argp->pagelen = 0; 148 argp->pagelen = 0;
149 } else { 149 } else {
150 argp->end = argp->p + (PAGE_SIZE>>2); 150 argp->end = argp->p + (PAGE_SIZE>>2);
@@ -1279,9 +1279,7 @@ nfsd4_decode_write(struct nfsd4_compoundargs *argp, struct nfsd4_write *write)
1279 argp->pagelen -= pages * PAGE_SIZE; 1279 argp->pagelen -= pages * PAGE_SIZE;
1280 len -= pages * PAGE_SIZE; 1280 len -= pages * PAGE_SIZE;
1281 1281
1282 argp->p = (__be32 *)page_address(argp->pagelist[0]); 1282 next_decode_page(argp);
1283 argp->pagelist++;
1284 argp->end = argp->p + XDR_QUADLEN(PAGE_SIZE);
1285 } 1283 }
1286 argp->p += XDR_QUADLEN(len); 1284 argp->p += XDR_QUADLEN(len);
1287 1285