summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorjwahlig <none@none>2007-10-02 15:44:31 -0700
committerjwahlig <none@none>2007-10-02 15:44:31 -0700
commitbed9e5350d439351ece4d9e66f79d04fe6d0334e (patch)
treece946009ee50a8aeb0383a0c46cd13378b35e9f8 /usr/src
parent9f61ace3d4a30d1a805879021577f3f07a9bd258 (diff)
downloadillumos-joyent-bed9e5350d439351ece4d9e66f79d04fe6d0334e.tar.gz
6608311 nfs4_db.c assertion failed: e->refcnt > 1
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/common/fs/nfs/nfs4_state.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/usr/src/uts/common/fs/nfs/nfs4_state.c b/usr/src/uts/common/fs/nfs/nfs4_state.c
index 75d6e86e91..2674fa8de7 100644
--- a/usr/src/uts/common/fs/nfs/nfs4_state.c
+++ b/usr/src/uts/common/fs/nfs/nfs4_state.c
@@ -2298,7 +2298,8 @@ rfs4_findfile(vnode_t *vp, nfs_fh4 *fh, bool_t *create)
mutex_exit(&vp->v_lock);
if (fp) {
rfs4_dbe_lock(fp->dbe);
- if (rfs4_dbe_is_invalid(fp->dbe)) {
+ if (rfs4_dbe_is_invalid(fp->dbe) ||
+ (rfs4_dbe_refcnt(fp->dbe) == 0)) {
rfs4_dbe_unlock(fp->dbe);
fp = NULL;
} else {
@@ -2331,7 +2332,8 @@ rfs4_findfile_withlock(vnode_t *vp, nfs_fh4 *fh, bool_t *create)
mutex_exit(&vp->v_lock);
if (fp) {
rfs4_dbe_lock(fp->dbe);
- if (rfs4_dbe_is_invalid(fp->dbe)) {
+ if (rfs4_dbe_is_invalid(fp->dbe) ||
+ (rfs4_dbe_refcnt(fp->dbe) == 0)) {
rfs4_dbe_unlock(fp->dbe);
fp = NULL;
} else {