Jelajahi Sumber

nfsd4: move check_stateid_generation check

No change in behavior.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
J. Bruce Fields 16 tahun lalu
induk
melakukan
0c2a498fa6
1 mengubah file dengan 6 tambahan dan 3 penghapusan
  1. 6 3
      fs/nfsd/nfs4state.c

+ 6 - 3
fs/nfsd/nfs4state.c

@@ -2084,6 +2084,9 @@ nfs4_preprocess_stateid_op(struct svc_fh *current_fh, stateid_t *stateid, int fl
 			goto out;
 		}
 		stidp = &dp->dl_stateid;
+		status = check_stateid_generation(stateid, stidp);
+		if (status)
+			goto out;
 	} else { /* open or lock stateid */
 		stp = find_stateid(stateid, flags);
 		if (!stp) {
@@ -2095,10 +2098,10 @@ nfs4_preprocess_stateid_op(struct svc_fh *current_fh, stateid_t *stateid, int fl
 		if (!stp->st_stateowner->so_confirmed)
 			goto out;
 		stidp = &stp->st_stateid;
+		status = check_stateid_generation(stateid, stidp);
+		if (status)
+			goto out;
 	}
-	status = check_stateid_generation(stateid, stidp);
-	if (status)
-		goto out;
 	if (stp) {
 		status = nfs4_check_openmode(stp, flags);
 		if (status)