diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-06-05 15:16:47 +0200 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-06-05 16:00:14 +0200 |
commit | 1549210fcc17e9ae20c09ac8cd4c48a8dfd431bd (patch) | |
tree | 87db73acf11d00c1c4366e488faf86cd70ed996a /include | |
parent | NFSv4.1: Fix a request leak on the back channel (diff) | |
download | linux-1549210fcc17e9ae20c09ac8cd4c48a8dfd431bd.tar.xz linux-1549210fcc17e9ae20c09ac8cd4c48a8dfd431bd.zip |
NFSv4: Fix an Oops in the open recovery code
The open recovery code does not need to request a new value for the
mdsthreshold, and so does not allocate a struct nfs4_threshold.
The problem is that encode_getfattr_open() will still request an
mdsthreshold, and so we end up Oopsing in decode_attr_mdsthreshold.
This patch fixes encode_getfattr_open so that it doesn't request an
mdsthreshold when the caller isn't asking for one. It also fixes
decode_attr_mdsthreshold so that it errors if the server returns
an mdsthreshold that we didn't ask for (instead of Oopsing).
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: Andy Adamson <andros@netapp.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/nfs_xdr.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index d1a7bf51c326..7519baef025b 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h @@ -348,6 +348,7 @@ struct nfs_openargs { const struct qstr * name; const struct nfs_server *server; /* Needed for ID mapping */ const u32 * bitmask; + const u32 * open_bitmap; __u32 claim; struct nfs4_sequence_args seq_args; }; |