Changeset View
Changeset View
Standalone View
Standalone View
sys/contrib/openzfs/module/os/freebsd/spl/spl_vfs.c
Show First 20 Lines • Show All 234 Lines • ▼ Show 20 Lines | mount_snapshot(kthread_t *td, vnode_t **vpp, const char *fstype, char *fspath, | ||||
mp->mnt_optnew = NULL; | mp->mnt_optnew = NULL; | ||||
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); | vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); | ||||
#ifdef FREEBSD_NAMECACHE | #ifdef FREEBSD_NAMECACHE | ||||
cache_purge(vp); | cache_purge(vp); | ||||
#endif | #endif | ||||
VI_LOCK(vp); | VI_LOCK(vp); | ||||
vp->v_iflag &= ~VI_MOUNT; | vp->v_iflag &= ~VI_MOUNT; | ||||
#ifdef VIRF_MOUNTPOINT | |||||
vn_irflag_set_locked(vp, VIRF_MOUNTPOINT); | vn_irflag_set_locked(vp, VIRF_MOUNTPOINT); | ||||
#endif | |||||
vp->v_mountedhere = mp; | vp->v_mountedhere = mp; | ||||
VI_UNLOCK(vp); | VI_UNLOCK(vp); | ||||
/* Put the new filesystem on the mount list. */ | /* Put the new filesystem on the mount list. */ | ||||
mtx_lock(&mountlist_mtx); | mtx_lock(&mountlist_mtx); | ||||
TAILQ_INSERT_TAIL(&mountlist, mp, mnt_list); | TAILQ_INSERT_TAIL(&mountlist, mp, mnt_list); | ||||
mtx_unlock(&mountlist_mtx); | mtx_unlock(&mountlist_mtx); | ||||
vfs_event_signal(NULL, VQ_MOUNT, 0); | vfs_event_signal(NULL, VQ_MOUNT, 0); | ||||
if (VFS_ROOT(mp, LK_EXCLUSIVE, &mvp)) | if (VFS_ROOT(mp, LK_EXCLUSIVE, &mvp)) | ||||
Show All 34 Lines |