aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/nfsd/nfs4state.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index 7f616e928a57..b7e2f251ea95 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -2072,21 +2072,21 @@ nfs4_preprocess_stateid_op(struct svc_fh *current_fh, stateid_t *stateid, int fl
2072 if (ZERO_STATEID(stateid) || ONE_STATEID(stateid)) 2072 if (ZERO_STATEID(stateid) || ONE_STATEID(stateid))
2073 return check_special_stateids(current_fh, stateid, flags); 2073 return check_special_stateids(current_fh, stateid, flags);
2074 2074
2075 /* STALE STATEID */
2076 status = nfserr_stale_stateid; 2075 status = nfserr_stale_stateid;
2077 if (STALE_STATEID(stateid)) 2076 if (STALE_STATEID(stateid))
2078 goto out; 2077 goto out;
2079 2078
2080 /* BAD STATEID */
2081 status = nfserr_bad_stateid; 2079 status = nfserr_bad_stateid;
2082 if (!stateid->si_fileid) { /* delegation stateid */ 2080 if (!stateid->si_fileid) { /* delegation stateid */
2083 if(!(dp = find_delegation_stateid(ino, stateid))) { 2081 dp = find_delegation_stateid(ino, stateid);
2082 if (!dp) {
2084 dprintk("NFSD: delegation stateid not found\n"); 2083 dprintk("NFSD: delegation stateid not found\n");
2085 goto out; 2084 goto out;
2086 } 2085 }
2087 stidp = &dp->dl_stateid; 2086 stidp = &dp->dl_stateid;
2088 } else { /* open or lock stateid */ 2087 } else { /* open or lock stateid */
2089 if (!(stp = find_stateid(stateid, flags))) { 2088 stp = find_stateid(stateid, flags);
2089 if (!stp) {
2090 dprintk("NFSD: open or lock stateid not found\n"); 2090 dprintk("NFSD: open or lock stateid not found\n");
2091 goto out; 2091 goto out;
2092 } 2092 }
@@ -2100,13 +2100,15 @@ nfs4_preprocess_stateid_op(struct svc_fh *current_fh, stateid_t *stateid, int fl
2100 if (status) 2100 if (status)
2101 goto out; 2101 goto out;
2102 if (stp) { 2102 if (stp) {
2103 if ((status = nfs4_check_openmode(stp,flags))) 2103 status = nfs4_check_openmode(stp, flags);
2104 if (status)
2104 goto out; 2105 goto out;
2105 renew_client(stp->st_stateowner->so_client); 2106 renew_client(stp->st_stateowner->so_client);
2106 if (filpp) 2107 if (filpp)
2107 *filpp = stp->st_vfs_file; 2108 *filpp = stp->st_vfs_file;
2108 } else { 2109 } else {
2109 if ((status = nfs4_check_delegmode(dp, flags))) 2110 status = nfs4_check_delegmode(dp, flags);
2111 if (status)
2110 goto out; 2112 goto out;
2111 renew_client(dp->dl_client); 2113 renew_client(dp->dl_client);
2112 if (flags & DELEG_RET) 2114 if (flags & DELEG_RET)