Lines Matching refs:vfsp

227 fsop_mount(vfs_t *vfsp, vnode_t *mvp, struct mounta *uap, cred_t *cr)  in fsop_mount()  argument
229 return (*(vfsp)->vfs_op->vfs_mount)(vfsp, mvp, uap, cr); in fsop_mount()
233 fsop_unmount(vfs_t *vfsp, int flag, cred_t *cr) in fsop_unmount() argument
235 return (*(vfsp)->vfs_op->vfs_unmount)(vfsp, flag, cr); in fsop_unmount()
239 fsop_root(vfs_t *vfsp, vnode_t **vpp) in fsop_root() argument
242 int ret = (*(vfsp)->vfs_op->vfs_root)(vfsp, vpp); in fsop_root()
247 if (ret == 0 && vfsp->vfs_mntpt != NULL && (*vpp)->v_path == NULL) { in fsop_root()
248 mntpt = vfs_getmntpoint(vfsp); in fsop_root()
258 fsop_statfs(vfs_t *vfsp, statvfs64_t *sp) in fsop_statfs() argument
260 return (*(vfsp)->vfs_op->vfs_statvfs)(vfsp, sp); in fsop_statfs()
264 fsop_sync(vfs_t *vfsp, short flag, cred_t *cr) in fsop_sync() argument
266 return (*(vfsp)->vfs_op->vfs_sync)(vfsp, flag, cr); in fsop_sync()
270 fsop_vget(vfs_t *vfsp, vnode_t **vpp, fid_t *fidp) in fsop_vget() argument
283 if (vfs_has_feature(vfsp, VFSFT_SYSATTR_VIEWS) && in fsop_vget()
285 return (xattr_dir_vget(vfsp, vpp, fidp)); in fsop_vget()
287 return (*(vfsp)->vfs_op->vfs_vget)(vfsp, vpp, fidp); in fsop_vget()
291 fsop_mountroot(vfs_t *vfsp, enum whymountroot reason) in fsop_mountroot() argument
293 return (*(vfsp)->vfs_op->vfs_mountroot)(vfsp, reason); in fsop_mountroot()
297 fsop_freefs(vfs_t *vfsp) in fsop_freefs() argument
299 (*(vfsp)->vfs_op->vfs_freevfs)(vfsp); in fsop_freefs()
303 fsop_vnstate(vfs_t *vfsp, vnode_t *vp, vntrans_t nstate) in fsop_vnstate() argument
305 return ((*(vfsp)->vfs_op->vfs_vnstate)(vfsp, vp, nstate)); in fsop_vnstate()
470 vfs_setops(vfs_t *vfsp, vfsops_t *vfsops) in vfs_setops() argument
474 ASSERT(vfsp != NULL); in vfs_setops()
477 op = vfsp->vfs_op; in vfs_setops()
479 if (vfsp->vfs_femhead == NULL && in vfs_setops()
480 atomic_cas_ptr(&vfsp->vfs_op, op, vfsops) == op) { in vfs_setops()
483 fsem_setvfsops(vfsp, vfsops); in vfs_setops()
488 vfs_getops(vfs_t *vfsp) in vfs_getops() argument
492 ASSERT(vfsp != NULL); in vfs_getops()
494 op = vfsp->vfs_op; in vfs_getops()
496 if (vfsp->vfs_femhead == NULL && op == vfsp->vfs_op) { in vfs_getops()
499 return (fsem_getvfsops(vfsp)); in vfs_getops()
508 vfs_matchops(vfs_t *vfsp, vfsops_t *vfsops) in vfs_matchops() argument
510 return (vfs_getops(vfsp) == vfsops); in vfs_matchops()
518 vfs_can_sync(vfs_t *vfsp) in vfs_can_sync() argument
521 return (vfs_getops(vfsp)->vfs_sync != fs_sync); in vfs_can_sync()
528 vfs_init(vfs_t *vfsp, vfsops_t *op, void *data) in vfs_init() argument
531 vfsp->vfs_count = 0; in vfs_init()
532 vfsp->vfs_next = vfsp; in vfs_init()
533 vfsp->vfs_prev = vfsp; in vfs_init()
534 vfsp->vfs_zone_next = vfsp; in vfs_init()
535 vfsp->vfs_zone_prev = vfsp; in vfs_init()
536 vfsp->vfs_lofi_minor = 0; in vfs_init()
537 sema_init(&vfsp->vfs_reflock, 1, NULL, SEMA_DEFAULT, NULL); in vfs_init()
538 vfsimpl_setup(vfsp); in vfs_init()
539 vfsp->vfs_data = (data); in vfs_init()
540 vfs_setops((vfsp), (op)); in vfs_init()
548 vfsimpl_setup(vfs_t *vfsp) in vfsimpl_setup() argument
552 if (vfsp->vfs_implp != NULL) { in vfsimpl_setup()
556 vfsp->vfs_implp = kmem_alloc(sizeof (vfs_impl_t), KM_SLEEP); in vfsimpl_setup()
558 vfsp->vfs_vskap = NULL; in vfsimpl_setup()
559 vfsp->vfs_fstypevsp = NULL; in vfsimpl_setup()
562 vfsp->vfs_featureset[0] = VFS_FEATURE_MAXSZ - 1; in vfsimpl_setup()
564 vfsp->vfs_featureset[i] = 0; in vfsimpl_setup()
574 vfsimpl_teardown(vfs_t *vfsp) in vfsimpl_teardown() argument
576 vfs_impl_t *vip = vfsp->vfs_implp; in vfsimpl_teardown()
581 kmem_free(vfsp->vfs_implp, sizeof (vfs_impl_t)); in vfsimpl_teardown()
582 vfsp->vfs_implp = NULL; in vfsimpl_teardown()
839 vfs_t *vfsp; in vfs_mountfs() local
850 if (domount(NULL, &mounta, mvp, CRED(), &vfsp)) in vfs_mountfs()
853 VFS_RELE(vfsp); in vfs_mountfs()
1008 lofi_add(const char *fsname, struct vfs *vfsp, in lofi_add() argument
1068 vfsp->vfs_lofi_minor = minor; in lofi_add()
1082 lofi_remove(struct vfs *vfsp) in lofi_remove() argument
1089 if (vfsp->vfs_lofi_minor == 0) in lofi_remove()
1095 li->li_minor = vfsp->vfs_lofi_minor; in lofi_remove()
1110 vfsp->vfs_lofi_minor = 0; in lofi_remove()
1144 struct vfs *vfsp; in domount() local
1490 vfsp = vp->v_vfsp; in domount()
1491 ovflags = vfsp->vfs_flag; in domount()
1492 vfsp->vfs_flag |= VFS_REMOUNT; in domount()
1493 vfsp->vfs_flag &= ~VFS_RDONLY; in domount()
1495 vfsp = vfs_alloc(KM_SLEEP); in domount()
1496 VFS_INIT(vfsp, vfsops, NULL); in domount()
1499 VFS_HOLD(vfsp); in domount()
1501 if ((error = lofi_add(fsname, vfsp, &mnt_mntopts, uap)) != 0) { in domount()
1505 vfs_free(vfsp); in domount()
1508 VFS_RELE(vfsp); in domount()
1516 if (vfsp->vfs_lofi_minor != 0) { in domount()
1525 if ((sema_tryp(&vfsp->vfs_reflock) == 0) && in domount()
1526 !(vfsp->vfs_flag & VFS_REMOUNT)) in domount()
1538 if (error = vfs_lock(vfsp)) { in domount()
1539 vfsp->vfs_flag = ovflags; in domount()
1541 lofi_remove(vfsp); in domount()
1545 vfs_free(vfsp); in domount()
1549 vfs_lock_wait(vfsp); in domount()
1569 error = vfs_get_lofi(vfsp, &lvp); in domount()
1571 lofi_remove(vfsp); in domount()
1575 vfs_unlock(vfsp); in domount()
1578 VFS_RELE(vfsp); in domount()
1580 vfs_free(vfsp); in domount()
1593 vfs_addmip(bdev, vfsp); in domount()
1663 vfs_swapopttbl(&mnt_mntopts, &vfsp->vfs_mntopts); in domount()
1665 if ((oldresource = vfsp->vfs_resource) != NULL) in domount()
1667 if ((oldmntpt = vfsp->vfs_mntpt) != NULL) in domount()
1670 vfs_setresource(vfsp, resource, 0); in domount()
1671 vfs_setmntpoint(vfsp, mountpt, 0); in domount()
1677 error = VFS_MOUNT(vfsp, vp, uap, credp); in domount()
1680 vfs_setmntopt(vfsp, MNTOPT_RO, NULL, 0); in domount()
1682 vfs_setmntopt(vfsp, MNTOPT_NOSUID, NULL, 0); in domount()
1684 vfs_setmntopt(vfsp, MNTOPT_GLOBAL, NULL, 0); in domount()
1687 lofi_remove(vfsp); in domount()
1691 vfs_swapopttbl(&mnt_mntopts, &vfsp->vfs_mntopts); in domount()
1692 vfs_setmntpoint(vfsp, refstr_value(oldmntpt), in domount()
1696 vfs_setresource(vfsp, refstr_value(oldresource), in domount()
1700 vfsp->vfs_flag = ovflags; in domount()
1701 vfs_unlock(vfsp); in domount()
1702 VFS_RELE(vfsp); in domount()
1704 vfs_unlock(vfsp); in domount()
1705 vfs_freemnttab(vfsp); in domount()
1706 vfs_free(vfsp); in domount()
1712 vfsp->vfs_mtime = ddi_get_time(); in domount()
1714 vfsp->vfs_flag &= ~VFS_REMOUNT; in domount()
1726 vfs_add(vp, vfsp, uap->flags); in domount()
1732 vfsp->vfs_zone = NULL; in domount()
1733 VFS_HOLD(vfsp); in domount()
1734 vfsp->vfs_vnodecovered = NULL; in domount()
1739 if (vfs_optionisset(vfsp, MNTOPT_RO, NULL)) in domount()
1740 vfsp->vfs_flag |= VFS_RDONLY; in domount()
1742 vfsp->vfs_flag &= ~VFS_RDONLY; in domount()
1743 if (vfs_optionisset(vfsp, MNTOPT_NOSUID, NULL)) { in domount()
1744 vfsp->vfs_flag |= (VFS_NOSETUID|VFS_NODEVICES); in domount()
1746 if (vfs_optionisset(vfsp, MNTOPT_NODEVICES, NULL)) in domount()
1747 vfsp->vfs_flag |= VFS_NODEVICES; in domount()
1749 vfsp->vfs_flag &= ~VFS_NODEVICES; in domount()
1750 if (vfs_optionisset(vfsp, MNTOPT_NOSETUID, NULL)) in domount()
1751 vfsp->vfs_flag |= VFS_NOSETUID; in domount()
1753 vfsp->vfs_flag &= ~VFS_NOSETUID; in domount()
1755 if (vfs_optionisset(vfsp, MNTOPT_NBMAND, NULL)) in domount()
1756 vfsp->vfs_flag |= VFS_NBMAND; in domount()
1758 vfsp->vfs_flag &= ~VFS_NBMAND; in domount()
1760 if (vfs_optionisset(vfsp, MNTOPT_XATTR, NULL)) in domount()
1761 vfsp->vfs_flag |= VFS_XATTR; in domount()
1763 vfsp->vfs_flag &= ~VFS_XATTR; in domount()
1765 if (vfs_optionisset(vfsp, MNTOPT_NOEXEC, NULL)) in domount()
1766 vfsp->vfs_flag |= VFS_NOEXEC; in domount()
1768 vfsp->vfs_flag &= ~VFS_NOEXEC; in domount()
1777 &vfsp->vfs_mntopts, inargs, optlen); in domount()
1799 initialize_vopstats(&vfsp->vfs_vopstats); in domount()
1805 vfsp->vfs_vskap = NULL; in domount()
1806 vfsp->vfs_flag |= VFS_STATS; in domount()
1807 vfsp->vfs_fstypevsp = get_fstype_vopstats(vfsp, vswp); in domount()
1811 vfsp->vfs_flag |= VFS_XID; in domount()
1813 vfs_unlock(vfsp); in domount()
1828 vskap = get_vskstat_anchor(vfsp); in domount()
1831 vfs_lock_wait(vfsp); in domount()
1832 if (vfsp->vfs_flag & VFS_STATS) { in domount()
1833 vfsp->vfs_vskap = vskap; in domount()
1835 vfs_unlock(vfsp); in domount()
1839 *vfspp = vfsp; in domount()
1854 vfs_delmip(vfsp); in domount()
1860 lofi_remove(vfsp); in domount()
1861 VFS_RELE(vfsp); in domount()
1869 struct vfs *vfsp, /* vfs being updated */ in vfs_setpath() argument
1880 ASSERT(!VFS_ON_LIST(vfsp) || vfs_lock_held(vfsp)); in vfs_setpath()
1893 if (VFS_ON_LIST(vfsp)) { in vfs_setpath()
1962 vfs_setresource(struct vfs *vfsp, const char *resource, uint32_t flag) in vfs_setresource() argument
1966 vfs_setpath(vfsp, &vfsp->vfs_resource, resource, flag); in vfs_setresource()
1974 vfs_setmntpoint(struct vfs *vfsp, const char *mntpt, uint32_t flag) in vfs_setmntpoint() argument
1978 vfs_setpath(vfsp, &vfsp->vfs_mntpt, mntpt, flag); in vfs_setmntpoint()
1984 vfs_getresource(const struct vfs *vfsp) in vfs_getresource() argument
1989 resource = vfsp->vfs_resource; in vfs_getresource()
1999 vfs_getmntpoint(const struct vfs *vfsp) in vfs_getmntpoint() argument
2004 mntpt = vfsp->vfs_mntpt; in vfs_getmntpoint()
2351 vfs_clearmntopt(struct vfs *vfsp, const char *opt) in vfs_clearmntopt() argument
2355 if (VFS_ON_LIST(vfsp)) { in vfs_clearmntopt()
2359 vfs_clearmntopt_nolock(&vfsp->vfs_mntopts, opt, gotlock); in vfs_clearmntopt()
2437 vfs_setmntopt(struct vfs *vfsp, const char *opt, const char *arg, int flags) in vfs_setmntopt() argument
2441 if (VFS_ON_LIST(vfsp)) { in vfs_setmntopt()
2445 vfs_setmntopt_nolock(&vfsp->vfs_mntopts, opt, arg, flags, gotlock); in vfs_setmntopt()
2488 vfs_t *vfsp; in vfs_settag() local
2500 vfsp = rootvfs; in vfs_settag()
2502 if (vfsp->vfs_dev == dev && in vfs_settag()
2503 strcmp(mntpt, refstr_value(vfsp->vfs_mntpt)) == 0) { in vfs_settag()
2507 vfsp = vfsp->vfs_next; in vfs_settag()
2508 } while (vfsp != rootvfs); in vfs_settag()
2514 err = secpolicy_fs_config(cr, vfsp); in vfs_settag()
2518 mops = &vfsp->vfs_mntopts; in vfs_settag()
2552 vfs_t *vfsp; in vfs_clrtag() local
2562 vfsp = rootvfs; in vfs_clrtag()
2564 if (vfsp->vfs_dev == dev && in vfs_clrtag()
2565 strcmp(mntpt, refstr_value(vfsp->vfs_mntpt)) == 0) { in vfs_clrtag()
2569 vfsp = vfsp->vfs_next; in vfs_clrtag()
2570 } while (vfsp != rootvfs); in vfs_clrtag()
2576 err = secpolicy_fs_config(cr, vfsp); in vfs_clrtag()
2580 if ((mop = vfs_hasopt(&vfsp->vfs_mntopts, tag)) == NULL) { in vfs_clrtag()
2588 vfs_clearmntopt_nolock(&vfsp->vfs_mntopts, tag, 1); in vfs_clrtag()
2703 vfs_optionisset(const struct vfs *vfsp, const char *opt, char **argp) in vfs_optionisset() argument
2708 ret = vfs_optionisset_nolock(&vfsp->vfs_mntopts, opt, argp); in vfs_optionisset()
2951 vfs_freemnttab(struct vfs *vfsp) in vfs_freemnttab() argument
2953 ASSERT(!VFS_ON_LIST(vfsp)); in vfs_freemnttab()
2958 if (vfsp->vfs_mntpt != NULL) { in vfs_freemnttab()
2959 refstr_rele(vfsp->vfs_mntpt); in vfs_freemnttab()
2960 vfsp->vfs_mntpt = NULL; in vfs_freemnttab()
2962 if (vfsp->vfs_resource != NULL) { in vfs_freemnttab()
2963 refstr_rele(vfsp->vfs_resource); in vfs_freemnttab()
2964 vfsp->vfs_resource = NULL; in vfs_freemnttab()
2969 vfs_freeopttbl(&vfsp->vfs_mntopts); in vfs_freemnttab()
3057 dounmount(struct vfs *vfsp, int flag, cred_t *cr) in dounmount() argument
3067 coveredvp = vfsp->vfs_vnodecovered; in dounmount()
3073 (void) dnlc_purge_vfsp(vfsp, 0); in dounmount()
3077 (void) VFS_SYNC(vfsp, 0, cr); in dounmount()
3084 vfs_lock_wait(vfsp); in dounmount()
3086 if (error = VFS_UNMOUNT(vfsp, flag, cr)) { in dounmount()
3087 vfs_unlock(vfsp); in dounmount()
3091 teardown_vopstats(vfsp); in dounmount()
3098 vfs_remove(vfsp); in dounmount()
3102 teardown_vopstats(vfsp); in dounmount()
3107 vfs_unlock(vfsp); in dounmount()
3108 VFS_RELE(vfsp); in dounmount()
3125 struct vfs *vfsp; in vfs_unmountall() local
3137 for (vfsp = rootvfs->vfs_prev; vfsp != rootvfs; vfsp = prev_vfsp) { in vfs_unmountall()
3138 prev_vfsp = vfsp->vfs_prev; in vfs_unmountall()
3140 if (vfs_lock(vfsp) != 0) in vfs_unmountall()
3142 error = vn_vfswlock(vfsp->vfs_vnodecovered); in vfs_unmountall()
3143 vfs_unlock(vfsp); in vfs_unmountall()
3149 (void) VFS_SYNC(vfsp, SYNC_CLOSE, CRED()); in vfs_unmountall()
3150 (void) dounmount(vfsp, 0, CRED()); in vfs_unmountall()
3157 for (vfsp = rootvfs->vfs_prev; in vfs_unmountall()
3158 vfsp != rootvfs; vfsp = vfsp->vfs_prev) in vfs_unmountall()
3159 if (vfsp == prev_vfsp) in vfs_unmountall()
3161 if (vfsp == rootvfs && prev_vfsp != rootvfs) in vfs_unmountall()
3171 vfs_addmip(dev_t dev, struct vfs *vfsp) in vfs_addmip() argument
3178 mipp->mip_vfsp = vfsp; in vfs_addmip()
3193 vfs_delmip(struct vfs *vfsp) in vfs_delmip() argument
3200 mipp && mipp->mip_vfsp != vfsp; mipp = mipp->mip_next) { in vfs_delmip()
3223 vfs_add(vnode_t *coveredvp, struct vfs *vfsp, int mflag) in vfs_add() argument
3227 ASSERT(vfs_lock_held(vfsp)); in vfs_add()
3228 VFS_HOLD(vfsp); in vfs_add()
3229 newflag = vfsp->vfs_flag; in vfs_add()
3245 coveredvp->v_vfsmountedhere = vfsp; in vfs_add()
3248 vfsp->vfs_vnodecovered = coveredvp; in vfs_add()
3249 vfsp->vfs_flag = newflag; in vfs_add()
3251 vfs_list_add(vfsp); in vfs_add()
3264 vfs_remove(struct vfs *vfsp) in vfs_remove() argument
3268 ASSERT(vfs_lock_held(vfsp)); in vfs_remove()
3274 if (vfsp == rootvfs) in vfs_remove()
3277 vfs_list_remove(vfsp); in vfs_remove()
3282 vp = vfsp->vfs_vnodecovered; in vfs_remove()
3285 vfsp->vfs_vnodecovered = NULL; in vfs_remove()
3291 vfs_unlock(vfsp); in vfs_remove()
3292 VFS_RELE(vfsp); in vfs_remove()
3301 vfs_lock(vfs_t *vfsp) in vfs_lock() argument
3305 vpvfsentry = vn_vfslocks_getlock(vfsp); in vfs_lock()
3314 vfs_rlock(vfs_t *vfsp) in vfs_rlock() argument
3318 vpvfsentry = vn_vfslocks_getlock(vfsp); in vfs_rlock()
3328 vfs_lock_wait(vfs_t *vfsp) in vfs_lock_wait() argument
3332 vpvfsentry = vn_vfslocks_getlock(vfsp); in vfs_lock_wait()
3337 vfs_rlock_wait(vfs_t *vfsp) in vfs_rlock_wait() argument
3341 vpvfsentry = vn_vfslocks_getlock(vfsp); in vfs_rlock_wait()
3349 vfs_unlock(vfs_t *vfsp) in vfs_unlock() argument
3367 vpvfsentry = vn_vfslocks_getlock(vfsp); in vfs_unlock()
3398 vfs_lock_held(vfs_t *vfsp) in vfs_lock_held() argument
3411 vpvfsentry = vn_vfslocks_getlock(vfsp); in vfs_lock_held()
3419 vfs_lock_owner(vfs_t *vfsp) in vfs_lock_owner() argument
3432 vpvfsentry = vn_vfslocks_getlock(vfsp); in vfs_lock_owner()
3476 vfs_hash_add(struct vfs *vfsp, int insert_at_head) in vfs_hash_add() argument
3484 dev = expldev(vfsp->vfs_fsid.val[0]); in vfs_hash_add()
3495 vfsp->vfs_hash = rvfs_list[vhno].rvfs_head; in vfs_hash_add()
3496 rvfs_list[vhno].rvfs_head = vfsp; in vfs_hash_add()
3505 vfsp->vfs_hash = NULL; in vfs_hash_add()
3506 *hp = vfsp; in vfs_hash_add()
3515 vfs_hash_remove(struct vfs *vfsp) in vfs_hash_remove() argument
3523 dev = expldev(vfsp->vfs_fsid.val[0]); in vfs_hash_remove()
3531 if (rvfs_list[vhno].rvfs_head == vfsp) { in vfs_hash_remove()
3532 rvfs_list[vhno].rvfs_head = vfsp->vfs_hash; in vfs_hash_remove()
3538 if (tvfsp->vfs_hash == vfsp) { in vfs_hash_remove()
3539 tvfsp->vfs_hash = vfsp->vfs_hash; in vfs_hash_remove()
3553 vfs_list_add(struct vfs *vfsp) in vfs_list_add() argument
3565 if (vfsp->vfs_implp == NULL) in vfs_list_add()
3566 vfsimpl_setup(vfsp); in vfs_list_add()
3567 vfs_mono_time(&vfsp->vfs_hrctime); in vfs_list_add()
3575 vfsp->vfs_zone = curproc->p_zone; in vfs_list_add()
3576 zone_init_ref(&vfsp->vfs_implp->vi_zone_ref); in vfs_list_add()
3577 zone_hold_ref(vfsp->vfs_zone, &vfsp->vfs_implp->vi_zone_ref, in vfs_list_add()
3583 zone = zone_find_by_path(refstr_value(vfsp->vfs_mntpt)); in vfs_list_add()
3603 if (vfsp == &root) { in vfs_list_add()
3608 ASSERT(rootvfs == vfsp); in vfs_list_add()
3614 zone->zone_vfslist = vfsp; in vfs_list_add()
3621 rootvfs->vfs_prev->vfs_next = vfsp; in vfs_list_add()
3622 vfsp->vfs_prev = rootvfs->vfs_prev; in vfs_list_add()
3623 rootvfs->vfs_prev = vfsp; in vfs_list_add()
3624 vfsp->vfs_next = rootvfs; in vfs_list_add()
3631 zone->zone_vfslist = vfsp; in vfs_list_add()
3633 zone->zone_vfslist->vfs_zone_prev->vfs_zone_next = vfsp; in vfs_list_add()
3634 vfsp->vfs_zone_prev = zone->zone_vfslist->vfs_zone_prev; in vfs_list_add()
3635 zone->zone_vfslist->vfs_zone_prev = vfsp; in vfs_list_add()
3636 vfsp->vfs_zone_next = zone->zone_vfslist; in vfs_list_add()
3645 vfs_hash_add(vfsp, 0); in vfs_list_add()
3651 vfsp->vfs_mntix = ++vfs_curr_mntix; in vfs_list_add()
3652 avl_add(&vfs_by_dev, vfsp); in vfs_list_add()
3657 avl_add(&vfs_by_mntpnt, vfsp); in vfs_list_add()
3668 vfs_list_remove(struct vfs *vfsp) in vfs_list_remove() argument
3672 zone = zone_find_by_path(refstr_value(vfsp->vfs_mntpt)); in vfs_list_remove()
3678 ASSERT(vfsp != rootvfs); in vfs_list_remove()
3685 avl_remove(&vfs_by_mntpnt, vfsp); in vfs_list_remove()
3686 avl_remove(&vfs_by_dev, vfsp); in vfs_list_remove()
3691 vfs_hash_remove(vfsp); in vfs_list_remove()
3696 vfsp->vfs_prev->vfs_next = vfsp->vfs_next; in vfs_list_remove()
3697 vfsp->vfs_next->vfs_prev = vfsp->vfs_prev; in vfs_list_remove()
3698 vfsp->vfs_next = vfsp->vfs_prev = NULL; in vfs_list_remove()
3703 if (zone->zone_vfslist == vfsp) in vfs_list_remove()
3704 zone->zone_vfslist = vfsp->vfs_zone_next; in vfs_list_remove()
3706 if (vfsp->vfs_zone_next == vfsp) { in vfs_list_remove()
3707 ASSERT(vfsp->vfs_zone_prev == vfsp); in vfs_list_remove()
3708 ASSERT(zone->zone_vfslist == vfsp); in vfs_list_remove()
3712 vfsp->vfs_zone_prev->vfs_zone_next = vfsp->vfs_zone_next; in vfs_list_remove()
3713 vfsp->vfs_zone_next->vfs_zone_prev = vfsp->vfs_zone_prev; in vfs_list_remove()
3714 vfsp->vfs_zone_next = vfsp->vfs_zone_prev = NULL; in vfs_list_remove()
3727 struct vfs *vfsp; in getvfs() local
3735 for (vfsp = rvfs_list[vhno].rvfs_head; vfsp; vfsp = vfsp->vfs_hash) { in getvfs()
3736 if (vfsp->vfs_fsid.val[0] == val0 && in getvfs()
3737 vfsp->vfs_fsid.val[1] == val1) { in getvfs()
3738 VFS_HOLD(vfsp); in getvfs()
3740 return (vfsp); in getvfs()
3756 vfs_devmounting(dev_t dev, struct vfs *vfsp) in vfs_devmounting() argument
3764 if (mipp->mip_vfsp != vfsp) in vfs_devmounting()
3781 struct vfs *vfsp; in vfs_devismounted() local
3798 vfsp = avl_nearest(&vfs_by_dev, index, AVL_AFTER); in vfs_devismounted()
3800 if (vfsp != NULL && vfsp->vfs_dev == dev) in vfs_devismounted()
3815 struct vfs *vfsp; in vfs_dev2vfsp() local
3832 vfsp = avl_nearest(&vfs_by_dev, index, AVL_AFTER); in vfs_dev2vfsp()
3835 while (vfsp != NULL && vfsp->vfs_dev == dev) { in vfs_dev2vfsp()
3843 if (ZONE_PATH_VISIBLE(refstr_value(vfsp->vfs_mntpt), in vfs_dev2vfsp()
3845 VFS_HOLD(vfsp); in vfs_dev2vfsp()
3849 vfsp = AVL_NEXT(&vfs_by_dev, vfsp); in vfs_dev2vfsp()
3852 return (found ? vfsp : NULL); in vfs_dev2vfsp()
3869 struct vfs *vfsp; in vfs_mntpoint2vfsp() local
3892 vfsp = avl_nearest(&vfs_by_mntpnt, index, AVL_BEFORE); in vfs_mntpoint2vfsp()
3896 if (vfsp != NULL && in vfs_mntpoint2vfsp()
3897 strcmp(refstr_value(vfsp->vfs_mntpt), mp) == 0) in vfs_mntpoint2vfsp()
3898 retvfsp = vfsp; in vfs_mntpoint2vfsp()
3902 vfsp = list->vfs_zone_prev; in vfs_mntpoint2vfsp()
3904 mntpt = refstr_value(vfsp->vfs_mntpt); in vfs_mntpoint2vfsp()
3907 retvfsp = vfsp; in vfs_mntpoint2vfsp()
3910 vfsp = vfsp->vfs_zone_prev; in vfs_mntpoint2vfsp()
3911 } while (vfsp != list->vfs_zone_prev); in vfs_mntpoint2vfsp()
3926 struct vfs *vfsp; in vfs_opsinuse() local
3930 vfsp = rootvfs; in vfs_opsinuse()
3933 if (vfs_getops(vfsp) == ops) { in vfs_opsinuse()
3937 vfsp = vfsp->vfs_next; in vfs_opsinuse()
3938 } while (vfsp != rootvfs); in vfs_opsinuse()
4252 vfsstray_sync(struct vfs *vfsp, short arg, struct cred *cr) in vfsstray_sync() argument
4286 vfs_EIO_sync(struct vfs *vfsp, short arg, struct cred *cr) in vfs_EIO_sync() argument
4390 vfs_t *vfsp; in vfs_alloc() local
4392 vfsp = kmem_cache_alloc(vfs_cache, kmflag); in vfs_alloc()
4398 bzero(vfsp, sizeof (vfs_t)); in vfs_alloc()
4399 return (vfsp); in vfs_alloc()
4403 vfs_free(vfs_t *vfsp) in vfs_free() argument
4418 if (vfsp->vfs_femhead) { in vfs_free()
4419 ASSERT(vfsp->vfs_femhead->femh_list == NULL); in vfs_free()
4420 mutex_destroy(&vfsp->vfs_femhead->femh_lock); in vfs_free()
4421 kmem_free(vfsp->vfs_femhead, sizeof (*(vfsp->vfs_femhead))); in vfs_free()
4422 vfsp->vfs_femhead = NULL; in vfs_free()
4425 if (vfsp->vfs_implp) in vfs_free()
4426 vfsimpl_teardown(vfsp); in vfs_free()
4427 sema_destroy(&vfsp->vfs_reflock); in vfs_free()
4428 kmem_cache_free(vfs_cache, vfsp); in vfs_free()
4435 vfs_hold(vfs_t *vfsp) in vfs_hold() argument
4437 atomic_inc_32(&vfsp->vfs_count); in vfs_hold()
4438 ASSERT(vfsp->vfs_count != 0); in vfs_hold()
4447 vfs_rele(vfs_t *vfsp) in vfs_rele() argument
4449 ASSERT(vfsp->vfs_count != 0); in vfs_rele()
4450 if (atomic_dec_32_nv(&vfsp->vfs_count) == 0) { in vfs_rele()
4451 VFS_FREEVFS(vfsp); in vfs_rele()
4452 lofi_remove(vfsp); in vfs_rele()
4453 if (vfsp->vfs_zone) in vfs_rele()
4454 zone_rele_ref(&vfsp->vfs_implp->vi_zone_ref, in vfs_rele()
4456 vfs_freemnttab(vfsp); in vfs_rele()
4457 vfs_free(vfsp); in vfs_rele()
4602 vfs_root_redev(vfs_t *vfsp, dev_t ndev, int fstype) in vfs_root_redev() argument
4606 vfs_hash_remove(vfsp); in vfs_root_redev()
4608 vfsp->vfs_dev = ndev; in vfs_root_redev()
4609 vfs_make_fsid(&vfsp->vfs_fsid, ndev, fstype); in vfs_root_redev()
4611 vfs_hash_add(vfsp, 1); in vfs_root_redev()
4819 vfs_set_feature(vfs_t *vfsp, vfs_feature_t feature) in vfs_set_feature() argument
4822 if (vfsp->vfs_implp == NULL) in vfs_set_feature()
4825 vfsp->vfs_featureset[VFTINDEX(feature)] |= VFTBITS(feature); in vfs_set_feature()
4829 vfs_clear_feature(vfs_t *vfsp, vfs_feature_t feature) in vfs_clear_feature() argument
4832 if (vfsp->vfs_implp == NULL) in vfs_clear_feature()
4834 vfsp->vfs_featureset[VFTINDEX(feature)] &= VFTBITS(~feature); in vfs_clear_feature()
4842 vfs_has_feature(vfs_t *vfsp, vfs_feature_t feature) in vfs_has_feature() argument
4847 if (vfsp->vfs_implp == NULL) in vfs_has_feature()
4850 if (vfsp->vfs_featureset[VFTINDEX(feature)] & VFTBITS(feature)) in vfs_has_feature()
4880 vfs_get_lofi(vfs_t *vfsp, vnode_t **vpp) in vfs_get_lofi() argument
4886 if (vfsp->vfs_lofi_minor == 0) { in vfs_get_lofi()
4891 strsize = snprintf(NULL, 0, LOFINODE_PATH, vfsp->vfs_lofi_minor); in vfs_get_lofi()
4893 (void) snprintf(path, strsize + 1, LOFINODE_PATH, vfsp->vfs_lofi_minor); in vfs_get_lofi()