Page MenuHomeFreeBSD

D37198.diff
No OneTemporary

D37198.diff

diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c
--- a/sys/kern/vfs_mount.c
+++ b/sys/kern/vfs_mount.c
@@ -1201,10 +1201,16 @@
mp->mnt_kern_flag &= ~MNTK_ASYNC;
MNT_IUNLOCK(mp);
+ /*
+ * VIRF_MOUNTPOINT and v_mountedhere need to be set under the
+ * vp lock to satisfy vfs_lookup() requirements.
+ */
+ VOP_LOCK(vp, LK_EXCLUSIVE | LK_RETRY);
VI_LOCK(vp);
vn_irflag_set_locked(vp, VIRF_MOUNTPOINT);
vp->v_mountedhere = mp;
VI_UNLOCK(vp);
+ VOP_UNLOCK(vp);
cache_purge(vp);
/*

File Metadata

Mime Type
text/plain
Expires
Mon, Nov 18, 4:28 PM (21 h, 52 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14700773
Default Alt Text
D37198.diff (508 B)

Event Timeline