summaryrefslogtreecommitdiffstats
path: root/sys/fs
diff options
context:
space:
mode:
authorrmacklem <rmacklem@FreeBSD.org>2009-07-22 14:32:28 +0000
committerrmacklem <rmacklem@FreeBSD.org>2009-07-22 14:32:28 +0000
commitce2a12d7ea97ed65c71fda5adaa5d168fbdaf9e3 (patch)
tree44720f1db80c6a7bb0d128fec541edbc738e9068 /sys/fs
parent315ba5eabf0194d0403cc2afbd4e67b2063d5fd7 (diff)
downloadFreeBSD-src-ce2a12d7ea97ed65c71fda5adaa5d168fbdaf9e3.zip
FreeBSD-src-ce2a12d7ea97ed65c71fda5adaa5d168fbdaf9e3.tar.gz
When using an NFSv4 mount in the experimental nfs client with delegations
being issued from the server, there was a case where an Open issued locally based on the delegation would be released before the associated vnode became inactive. If the delegation was recalled after the open was released, an Open against the server would not have been acquired and subsequent I/O operations would need to use the special stateid of all zeros. This patch fixes that case. Approved by: re (kensmith), kib (mentor)
Diffstat (limited to 'sys/fs')
-rw-r--r--sys/fs/nfsclient/nfs_clstate.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/fs/nfsclient/nfs_clstate.c b/sys/fs/nfsclient/nfs_clstate.c
index bb6c322..236432e 100644
--- a/sys/fs/nfsclient/nfs_clstate.c
+++ b/sys/fs/nfsclient/nfs_clstate.c
@@ -2472,7 +2472,7 @@ tryagain:
clearok = 1;
LIST_FOREACH(owp, &dp->nfsdl_owner, nfsow_list) {
op = LIST_FIRST(&owp->nfsow_open);
- if (op != NULL && op->nfso_opencnt > 0) {
+ if (op != NULL) {
clearok = 0;
break;
}
OpenPOWER on IntegriCloud