When devfs_allocv() committed to create new vnode, since de_vnode is NULL,

the dm_lock is held while the newly allocated vnode is locked. Since no
other threads may try to lock the new vnode yet, the LOR there cannot
result in the deadlock.

Shut down the witness warning to note this fact.

Tested by:	pho
Prodded by:	attilio
This commit is contained in:
Konstantin Belousov 2008-06-05 09:15:47 +00:00
parent c6ac76ad73
commit 9e40a5f827
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=179554

View file

@ -340,7 +340,7 @@ devfs_allocv(struct devfs_dirent *de, struct mount *mp, struct vnode **vpp, stru
} else {
vp->v_type = VBAD;
}
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY | LK_NOWITNESS);
mtx_lock(&devfs_de_interlock);
vp->v_data = de;
de->de_vnode = vp;