aboutsummaryrefslogtreecommitdiff
path: root/sys/fs/nfsclient/nfs_clrpcops.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/fs/nfsclient/nfs_clrpcops.c')
-rw-r--r--sys/fs/nfsclient/nfs_clrpcops.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/fs/nfsclient/nfs_clrpcops.c b/sys/fs/nfsclient/nfs_clrpcops.c
index acc4bc7b9f88..74803e255aae 100644
--- a/sys/fs/nfsclient/nfs_clrpcops.c
+++ b/sys/fs/nfsclient/nfs_clrpcops.c
@@ -457,8 +457,14 @@ else printf(" fhl=0\n");
* If error is non-zero, don't increment it, since the Open
* hasn't succeeded yet.
*/
- if (!error)
+ if (!error) {
op->nfso_opencnt++;
+ if (NFSHASNFSV4N(nmp) && NFSHASONEOPENOWN(nmp)) {
+ NFSLOCKNODE(np);
+ np->n_openstateid = op;
+ NFSUNLOCKNODE(np);
+ }
+ }
nfscl_openrelease(nmp, op, error, newone);
if (error == NFSERR_GRACE || error == NFSERR_STALECLIENTID ||
error == NFSERR_STALEDONTRECOVER || error == NFSERR_DELAY ||