]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
nfsd4: fix seqid_mutating_error
authorJ. Bruce Fields <bfields@redhat.com>
Wed, 10 Aug 2011 23:16:22 +0000 (19:16 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 7 Nov 2011 21:47:25 +0000 (13:47 -0800)
commit 576163005de286bbd418fcb99cfd0971523a0c6d upstream.

The set of errors here does *not* agree with the set of errors specified
in the rfc!

While we're there, turn this macros into a function, for the usual
reasons, and move it to the one place where it's actually used.

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/nfsd/nfs4xdr.c
fs/nfsd/state.h

index 4de2837c9c19a27859745b7df8cca370e325ecfa..99d450a41e747c7ab500846833cbed2571493c7d 100644 (file)
@@ -1507,6 +1507,18 @@ static void write_cinfo(__be32 **p, struct nfsd4_change_info *c)
                                                                \
        save = resp->p;
 
+static bool seqid_mutating_err(__be32 err)
+{
+       /* rfc 3530 section 8.1.5: */
+       return  err != nfserr_stale_clientid &&
+               err != nfserr_stale_stateid &&
+               err != nfserr_bad_stateid &&
+               err != nfserr_bad_seqid &&
+               err != nfserr_bad_xdr &&
+               err != nfserr_resource &&
+               err != nfserr_nofilehandle;
+}
+
 /*
  * Routine for encoding the result of a "seqid-mutating" NFSv4 operation.  This
  * is where sequence id's are incremented, and the replay cache is filled.
index fefeae27f25e62a784b8e67a483154b283542c64..8e5d59fefe5d1f3eb0a9d8be3ca018c6c635451d 100644 (file)
@@ -363,12 +363,6 @@ struct nfs4_stateid {
 #define WR_STATE               0x00000020
 #define CLOSE_STATE             0x00000040
 
-#define seqid_mutating_err(err)                       \
-       (((err) != nfserr_stale_clientid) &&    \
-       ((err) != nfserr_bad_seqid) &&          \
-       ((err) != nfserr_stale_stateid) &&      \
-       ((err) != nfserr_bad_stateid))
-
 struct nfsd4_compound_state;
 
 extern __be32 nfs4_preprocess_stateid_op(struct nfsd4_compound_state *cstate,