diff options
author | J. Bruce Fields <bfields@redhat.com> | 2013-02-28 21:51:49 +0100 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2013-04-03 17:47:53 +0200 |
commit | 9d313b17db965ae42137c5d4dd3063037544c4cd (patch) | |
tree | eaf39419bb8dcf2775570aa14ca12552655a69f1 /fs/nfsd/xdr4.h | |
parent | nfsd4: remove BUG_ON (diff) | |
download | linux-9d313b17db965ae42137c5d4dd3063037544c4cd.tar.xz linux-9d313b17db965ae42137c5d4dd3063037544c4cd.zip |
nfsd4: handle seqid-mutating open errors from xdr decoding
If a client sets an owner (or group_owner or acl) attribute on open for
create, and the mapping of that owner to an id fails, then we return
BAD_OWNER. But BAD_OWNER is a seqid-mutating error, so we can't
shortcut the open processing that case: we have to at least look up the
owner so we can find the seqid to bump.
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/xdr4.h')
-rw-r--r-- | fs/nfsd/xdr4.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfsd/xdr4.h b/fs/nfsd/xdr4.h index 546f8983ecf1..be0a79d1dbcb 100644 --- a/fs/nfsd/xdr4.h +++ b/fs/nfsd/xdr4.h @@ -237,6 +237,7 @@ struct nfsd4_open { u32 op_share_deny; /* request */ u32 op_deleg_want; /* request */ stateid_t op_stateid; /* response */ + __be32 op_xdr_error; /* see nfsd4_open_omfg() */ u32 op_recall; /* recall */ struct nfsd4_change_info op_cinfo; /* response */ u32 op_rflags; /* response */ |