aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfsd
diff options
context:
space:
mode:
authorBenny Halevy <bhalevy@panasas.com>2008-08-12 20:45:51 +0300
committerJ. Bruce Fields <bfields@citi.umich.edu>2008-09-29 17:56:58 -0400
commit5bf8c6911fe88bea4f9850007796fbacf9fbfb88 (patch)
treef81cfeb5d0525b8eb4be50b778a15bc800427eed /fs/nfsd
parentnfsd: don't declare p in ENCODE_SEQID_OP_HEAD (diff)
downloadlinux-dev-5bf8c6911fe88bea4f9850007796fbacf9fbfb88.tar.xz
linux-dev-5bf8c6911fe88bea4f9850007796fbacf9fbfb88.zip
nfsd: properly xdr-decode NFS4_OPEN_CLAIM_DELEGATE_CUR stateid
Signed-off-by: Benny Halevy <bhalevy@panasas.com> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Diffstat (limited to 'fs/nfsd')
-rw-r--r--fs/nfsd/nfs4xdr.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index 1b81f1656bc2..48a0cc17d5c2 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -679,7 +679,9 @@ nfsd4_decode_open(struct nfsd4_compoundargs *argp, struct nfsd4_open *open)
break;
case NFS4_OPEN_CLAIM_DELEGATE_CUR:
READ_BUF(sizeof(stateid_t) + 4);
- COPYMEM(&open->op_delegate_stateid, sizeof(stateid_t));
+ READ32(open->op_delegate_stateid.si_generation);
+ COPYMEM(&open->op_delegate_stateid.si_opaque,
+ sizeof(stateid_opaque_t));
READ32(open->op_fname.len);
READ_BUF(open->op_fname.len);
SAVEMEM(open->op_fname.data, open->op_fname.len);