diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index 386daac508f5b54bc0383ef2e923d3fba2c0a6c4..b96714ae3dd79412f670c2a76b339b8bb5b930b4 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -1820,6 +1820,7 @@ nfsd4_process_open2(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nf
 		status = nfs4_upgrade_open(rqstp, current_fh, stp, open);
 		if (status)
 			goto out;
+		update_stateid(&stp->st_stateid);
 	} else {
 		/* Stateid was not found, this is a new OPEN */
 		int flags = 0;