Always unlock the "fnode", even if we're about to free it, to keep
lock counts consistent. DIAGNOSTIC checks will barf otherwise. XXX ntfs_ntput should not free the node, the reclaim vop should do it XXX why does the ntfs code do its own internal locking?
This commit is contained in:
parent
bc8f4e2f46
commit
655a7bf795
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: ntfs_subr.c,v 1.23 1999/10/31 19:45:26 jdolecek Exp $ */
|
/* $NetBSD: ntfs_subr.c,v 1.24 1999/12/20 22:11:57 fvdl Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 1998, 1999 Semen Ustimenko (semenu@FreeBSD.org)
|
* Copyright (c) 1998, 1999 Semen Ustimenko (semenu@FreeBSD.org)
|
||||||
@ -450,6 +450,8 @@ ntfs_ntput(ip)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
lockmgr(&ip->i_lock, LK_RELEASE|LK_INTERLOCK, &ip->i_interlock);
|
||||||
|
|
||||||
if (ip->i_usecount == 0) {
|
if (ip->i_usecount == 0) {
|
||||||
dprintf(("ntfs_ntput: deallocating ntnode: %d\n",
|
dprintf(("ntfs_ntput: deallocating ntnode: %d\n",
|
||||||
ip->i_number));
|
ip->i_number));
|
||||||
@ -465,8 +467,6 @@ ntfs_ntput(ip)
|
|||||||
ntfs_freentvattr(vap);
|
ntfs_freentvattr(vap);
|
||||||
}
|
}
|
||||||
FREE(ip, M_NTFSNTNODE);
|
FREE(ip, M_NTFSNTNODE);
|
||||||
} else {
|
|
||||||
lockmgr(&ip->i_lock, LK_RELEASE|LK_INTERLOCK, &ip->i_interlock);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user