Lines Matching defs:vfsp
234 fsop_mount(vfs_t *vfsp, vnode_t *mvp, struct mounta *uap, cred_t *cr)
236 return (*(vfsp)->vfs_op->vfs_mount)(vfsp, mvp, uap, cr);
240 fsop_unmount(vfs_t *vfsp, int flag, cred_t *cr)
242 return (*(vfsp)->vfs_op->vfs_unmount)(vfsp, flag, cr);
246 fsop_root(vfs_t *vfsp, vnode_t **vpp)
249 int ret = (*(vfsp)->vfs_op->vfs_root)(vfsp, vpp);
254 if (ret == 0 && vfsp->vfs_mntpt != NULL && (*vpp)->v_path == NULL) {
255 mntpt = vfs_getmntpoint(vfsp);
265 fsop_statfs(vfs_t *vfsp, statvfs64_t *sp)
267 return (*(vfsp)->vfs_op->vfs_statvfs)(vfsp, sp);
271 fsop_sync(vfs_t *vfsp, short flag, cred_t *cr)
273 return (*(vfsp)->vfs_op->vfs_sync)(vfsp, flag, cr);
277 fsop_vget(vfs_t *vfsp, vnode_t **vpp, fid_t *fidp)
290 if (vfs_has_feature(vfsp, VFSFT_SYSATTR_VIEWS) &&
292 return (xattr_dir_vget(vfsp, vpp, fidp));
294 return (*(vfsp)->vfs_op->vfs_vget)(vfsp, vpp, fidp);
298 fsop_mountroot(vfs_t *vfsp, enum whymountroot reason)
300 return (*(vfsp)->vfs_op->vfs_mountroot)(vfsp, reason);
304 fsop_freefs(vfs_t *vfsp)
306 (*(vfsp)->vfs_op->vfs_freevfs)(vfsp);
310 fsop_vnstate(vfs_t *vfsp, vnode_t *vp, vntrans_t nstate)
312 return ((*(vfsp)->vfs_op->vfs_vnstate)(vfsp, vp, nstate));
477 vfs_setops(vfs_t *vfsp, vfsops_t *vfsops)
481 ASSERT(vfsp != NULL);
484 op = vfsp->vfs_op;
486 if (vfsp->vfs_femhead == NULL &&
487 atomic_cas_ptr(&vfsp->vfs_op, op, vfsops) == op) {
490 fsem_setvfsops(vfsp, vfsops);
495 vfs_getops(vfs_t *vfsp)
499 ASSERT(vfsp != NULL);
501 op = vfsp->vfs_op;
503 if (vfsp->vfs_femhead == NULL && op == vfsp->vfs_op) {
506 return (fsem_getvfsops(vfsp));
515 vfs_matchops(vfs_t *vfsp, vfsops_t *vfsops)
517 return (vfs_getops(vfsp) == vfsops);
525 vfs_can_sync(vfs_t *vfsp)
528 return (vfs_getops(vfsp)->vfs_sync != fs_sync);
535 vfs_init(vfs_t *vfsp, vfsops_t *op, void *data)
538 vfsp->vfs_count = 0;
539 vfsp->vfs_next = vfsp;
540 vfsp->vfs_prev = vfsp;
541 vfsp->vfs_zone_next = vfsp;
542 vfsp->vfs_zone_prev = vfsp;
543 vfsp->vfs_lofi_id = 0;
544 sema_init(&vfsp->vfs_reflock, 1, NULL, SEMA_DEFAULT, NULL);
545 vfsimpl_setup(vfsp);
546 vfsp->vfs_data = (data);
547 vfs_setops((vfsp), (op));
555 vfsimpl_setup(vfs_t *vfsp)
559 if (vfsp->vfs_implp != NULL) {
563 vfsp->vfs_implp = kmem_alloc(sizeof (vfs_impl_t), KM_SLEEP);
565 vfsp->vfs_vskap = NULL;
566 vfsp->vfs_fstypevsp = NULL;
569 vfsp->vfs_featureset[0] = VFS_FEATURE_MAXSZ - 1;
571 vfsp->vfs_featureset[i] = 0;
581 vfsimpl_teardown(vfs_t *vfsp)
583 vfs_impl_t *vip = vfsp->vfs_implp;
588 kmem_free(vfsp->vfs_implp, sizeof (vfs_impl_t));
589 vfsp->vfs_implp = NULL;
599 * each file system type, passing it a NULL vfsp to indicate that all
846 vfs_t *vfsp;
857 if (domount(NULL, &mounta, mvp, CRED(), &vfsp))
860 VFS_RELE(vfsp);
1016 lofi_add(const char *fsname, struct vfs *vfsp,
1076 vfsp->vfs_lofi_id = id;
1090 lofi_remove(struct vfs *vfsp)
1097 if (vfsp->vfs_lofi_id == 0)
1103 li->li_id = vfsp->vfs_lofi_id;
1118 vfsp->vfs_lofi_id = 0;
1152 struct vfs *vfsp;
1498 vfsp = vp->v_vfsp;
1499 ovflags = vfsp->vfs_flag;
1500 vfsp->vfs_flag |= VFS_REMOUNT;
1501 vfsp->vfs_flag &= ~VFS_RDONLY;
1503 vfsp = vfs_alloc(KM_SLEEP);
1504 VFS_INIT(vfsp, vfsops, NULL);
1507 VFS_HOLD(vfsp);
1509 if ((error = lofi_add(fsname, vfsp, &mnt_mntopts, uap)) != 0) {
1513 vfs_free(vfsp);
1516 VFS_RELE(vfsp);
1524 if (vfsp->vfs_lofi_id != 0) {
1533 if ((sema_tryp(&vfsp->vfs_reflock) == 0) &&
1534 !(vfsp->vfs_flag & VFS_REMOUNT))
1546 if (error = vfs_lock(vfsp)) {
1547 vfsp->vfs_flag = ovflags;
1549 lofi_remove(vfsp);
1553 vfs_free(vfsp);
1557 vfs_lock_wait(vfsp);
1577 error = vfs_get_lofi(vfsp, &lvp);
1579 lofi_remove(vfsp);
1583 vfs_unlock(vfsp);
1586 VFS_RELE(vfsp);
1588 vfs_free(vfsp);
1601 vfs_addmip(bdev, vfsp);
1639 * zone_find_by_path(refstr_value(vfsp->vfs_mntpt))
1671 vfs_swapopttbl(&mnt_mntopts, &vfsp->vfs_mntopts);
1673 if ((oldresource = vfsp->vfs_resource) != NULL)
1675 if ((oldmntpt = vfsp->vfs_mntpt) != NULL)
1678 vfs_setresource(vfsp, resource, 0);
1679 vfs_setmntpoint(vfsp, mountpt, 0);
1685 error = VFS_MOUNT(vfsp, vp, uap, credp);
1688 vfs_setmntopt(vfsp, MNTOPT_RO, NULL, 0);
1690 vfs_setmntopt(vfsp, MNTOPT_NOSUID, NULL, 0);
1692 vfs_setmntopt(vfsp, MNTOPT_GLOBAL, NULL, 0);
1695 lofi_remove(vfsp);
1699 vfs_swapopttbl(&mnt_mntopts, &vfsp->vfs_mntopts);
1700 vfs_setmntpoint(vfsp, refstr_value(oldmntpt),
1704 vfs_setresource(vfsp, refstr_value(oldresource),
1708 vfsp->vfs_flag = ovflags;
1709 vfs_unlock(vfsp);
1710 VFS_RELE(vfsp);
1712 vfs_unlock(vfsp);
1713 vfs_freemnttab(vfsp);
1714 vfs_free(vfsp);
1720 vfsp->vfs_mtime = ddi_get_time();
1722 vfsp->vfs_flag &= ~VFS_REMOUNT;
1729 * Link vfsp into the name space at the mount
1734 vfs_add(vp, vfsp, uap->flags);
1740 vfsp->vfs_zone = NULL;
1741 VFS_HOLD(vfsp);
1742 vfsp->vfs_vnodecovered = NULL;
1747 if (vfs_optionisset(vfsp, MNTOPT_RO, NULL))
1748 vfsp->vfs_flag |= VFS_RDONLY;
1750 vfsp->vfs_flag &= ~VFS_RDONLY;
1751 if (vfs_optionisset(vfsp, MNTOPT_NOSUID, NULL)) {
1752 vfsp->vfs_flag |= (VFS_NOSETUID|VFS_NODEVICES);
1754 if (vfs_optionisset(vfsp, MNTOPT_NODEVICES, NULL))
1755 vfsp->vfs_flag |= VFS_NODEVICES;
1757 vfsp->vfs_flag &= ~VFS_NODEVICES;
1758 if (vfs_optionisset(vfsp, MNTOPT_NOSETUID, NULL))
1759 vfsp->vfs_flag |= VFS_NOSETUID;
1761 vfsp->vfs_flag &= ~VFS_NOSETUID;
1763 if (vfs_optionisset(vfsp, MNTOPT_NBMAND, NULL))
1764 vfsp->vfs_flag |= VFS_NBMAND;
1766 vfsp->vfs_flag &= ~VFS_NBMAND;
1768 if (vfs_optionisset(vfsp, MNTOPT_XATTR, NULL))
1769 vfsp->vfs_flag |= VFS_XATTR;
1771 vfsp->vfs_flag &= ~VFS_XATTR;
1773 if (vfs_optionisset(vfsp, MNTOPT_NOEXEC, NULL))
1774 vfsp->vfs_flag |= VFS_NOEXEC;
1776 vfsp->vfs_flag &= ~VFS_NOEXEC;
1778 if (vfs_optionisset(vfsp, MNTOPT_NOFOLLOW, NULL))
1779 vfsp->vfs_flag |= VFS_NOFOLLOW;
1781 vfsp->vfs_flag &= ~VFS_NOFOLLOW;
1790 &vfsp->vfs_mntopts, inargs, optlen);
1812 initialize_vopstats(&vfsp->vfs_vopstats);
1818 vfsp->vfs_vskap = NULL;
1819 vfsp->vfs_flag |= VFS_STATS;
1820 vfsp->vfs_fstypevsp = get_fstype_vopstats(vfsp, vswp);
1824 vfsp->vfs_flag |= VFS_XID;
1826 vfs_unlock(vfsp);
1841 vskap = get_vskstat_anchor(vfsp);
1844 vfs_lock_wait(vfsp);
1845 if (vfsp->vfs_flag & VFS_STATS) {
1846 vfsp->vfs_vskap = vskap;
1848 vfs_unlock(vfsp);
1851 /* Return vfsp to caller. */
1852 *vfspp = vfsp;
1867 vfs_delmip(vfsp);
1873 lofi_remove(vfsp);
1874 VFS_RELE(vfsp);
1882 struct vfs *vfsp, /* vfs being updated */
1893 ASSERT(!VFS_ON_LIST(vfsp) || vfs_lock_held(vfsp));
1906 if (VFS_ON_LIST(vfsp)) {
1972 * If vfsp is already mounted, caller must hold the vfs lock.
1975 vfs_setresource(struct vfs *vfsp, const char *resource, uint32_t flag)
1979 vfs_setpath(vfsp, &vfsp->vfs_resource, resource, flag);
1984 * If vfsp is already mounted, caller must hold the vfs lock.
1987 vfs_setmntpoint(struct vfs *vfsp, const char *mntpt, uint32_t flag)
1991 vfs_setpath(vfsp, &vfsp->vfs_mntpt, mntpt, flag);
1997 vfs_getresource(const struct vfs *vfsp)
2002 resource = vfsp->vfs_resource;
2012 vfs_getmntpoint(const struct vfs *vfsp)
2017 mntpt = vfsp->vfs_mntpt;
2364 vfs_clearmntopt(struct vfs *vfsp, const char *opt)
2368 if (VFS_ON_LIST(vfsp)) {
2372 vfs_clearmntopt_nolock(&vfsp->vfs_mntopts, opt, gotlock);
2450 vfs_setmntopt(struct vfs *vfsp, const char *opt, const char *arg, int flags)
2454 if (VFS_ON_LIST(vfsp)) {
2458 vfs_setmntopt_nolock(&vfsp->vfs_mntopts, opt, arg, flags, gotlock);
2501 vfs_t *vfsp;
2513 vfsp = rootvfs;
2515 if (vfsp->vfs_dev == dev &&
2516 strcmp(mntpt, refstr_value(vfsp->vfs_mntpt)) == 0) {
2520 vfsp = vfsp->vfs_next;
2521 } while (vfsp != rootvfs);
2527 err = secpolicy_fs_config(cr, vfsp);
2531 mops = &vfsp->vfs_mntopts;
2565 vfs_t *vfsp;
2575 vfsp = rootvfs;
2577 if (vfsp->vfs_dev == dev &&
2578 strcmp(mntpt, refstr_value(vfsp->vfs_mntpt)) == 0) {
2582 vfsp = vfsp->vfs_next;
2583 } while (vfsp != rootvfs);
2589 err = secpolicy_fs_config(cr, vfsp);
2593 if ((mop = vfs_hasopt(&vfsp->vfs_mntopts, tag)) == NULL) {
2601 vfs_clearmntopt_nolock(&vfsp->vfs_mntopts, tag, 1);
2716 vfs_optionisset(const struct vfs *vfsp, const char *opt, char **argp)
2721 ret = vfs_optionisset_nolock(&vfsp->vfs_mntopts, opt, argp);
2964 vfs_freemnttab(struct vfs *vfsp)
2966 ASSERT(!VFS_ON_LIST(vfsp));
2971 if (vfsp->vfs_mntpt != NULL) {
2972 refstr_rele(vfsp->vfs_mntpt);
2973 vfsp->vfs_mntpt = NULL;
2975 if (vfsp->vfs_resource != NULL) {
2976 refstr_rele(vfsp->vfs_resource);
2977 vfsp->vfs_resource = NULL;
2982 vfs_freeopttbl(&vfsp->vfs_mntopts);
3070 dounmount(struct vfs *vfsp, int flag, cred_t *cr)
3080 coveredvp = vfsp->vfs_vnodecovered;
3086 (void) dnlc_purge_vfsp(vfsp, 0);
3090 (void) VFS_SYNC(vfsp, 0, cr);
3097 vfs_lock_wait(vfsp);
3099 if (error = VFS_UNMOUNT(vfsp, flag, cr)) {
3100 vfs_unlock(vfsp);
3104 teardown_vopstats(vfsp);
3106 * vfs_remove() will do a VN_RELE(vfsp->vfs_vnodecovered)
3107 * when it frees vfsp so we do a VN_HOLD() so we can
3111 vfs_remove(vfsp);
3115 teardown_vopstats(vfsp);
3120 vfs_unlock(vfsp);
3121 VFS_RELE(vfsp);
3138 struct vfs *vfsp;
3150 for (vfsp = rootvfs->vfs_prev; vfsp != rootvfs; vfsp = prev_vfsp) {
3151 prev_vfsp = vfsp->vfs_prev;
3153 if (vfs_lock(vfsp) != 0)
3155 error = vn_vfswlock(vfsp->vfs_vnodecovered);
3156 vfs_unlock(vfsp);
3162 (void) VFS_SYNC(vfsp, SYNC_CLOSE, CRED());
3163 (void) dounmount(vfsp, 0, CRED());
3170 for (vfsp = rootvfs->vfs_prev;
3171 vfsp != rootvfs; vfsp = vfsp->vfs_prev)
3172 if (vfsp == prev_vfsp)
3174 if (vfsp == rootvfs && prev_vfsp != rootvfs)
3184 vfs_addmip(dev_t dev, struct vfs *vfsp)
3191 mipp->mip_vfsp = vfsp;
3206 vfs_delmip(struct vfs *vfsp)
3213 mipp && mipp->mip_vfsp != vfsp; mipp = mipp->mip_next) {
3236 vfs_add(vnode_t *coveredvp, struct vfs *vfsp, int mflag)
3240 ASSERT(vfs_lock_held(vfsp));
3241 VFS_HOLD(vfsp);
3242 newflag = vfsp->vfs_flag;
3258 coveredvp->v_vfsmountedhere = vfsp;
3261 vfsp->vfs_vnodecovered = coveredvp;
3262 vfsp->vfs_flag = newflag;
3264 vfs_list_add(vfsp);
3277 vfs_remove(struct vfs *vfsp)
3281 ASSERT(vfs_lock_held(vfsp));
3287 if (vfsp == rootvfs)
3290 vfs_list_remove(vfsp);
3295 vp = vfsp->vfs_vnodecovered;
3298 vfsp->vfs_vnodecovered = NULL;
3304 vfs_unlock(vfsp);
3305 VFS_RELE(vfsp);
3314 vfs_lock(vfs_t *vfsp)
3318 vpvfsentry = vn_vfslocks_getlock(vfsp);
3327 vfs_rlock(vfs_t *vfsp)
3331 vpvfsentry = vn_vfslocks_getlock(vfsp);
3341 vfs_lock_wait(vfs_t *vfsp)
3345 vpvfsentry = vn_vfslocks_getlock(vfsp);
3350 vfs_rlock_wait(vfs_t *vfsp)
3354 vpvfsentry = vn_vfslocks_getlock(vfsp);
3362 vfs_unlock(vfs_t *vfsp)
3380 vpvfsentry = vn_vfslocks_getlock(vfsp);
3411 vfs_lock_held(vfs_t *vfsp)
3424 vpvfsentry = vn_vfslocks_getlock(vfsp);
3432 vfs_lock_owner(vfs_t *vfsp)
3445 vpvfsentry = vn_vfslocks_getlock(vfsp);
3489 vfs_hash_add(struct vfs *vfsp, int insert_at_head)
3497 dev = expldev(vfsp->vfs_fsid.val[0]);
3508 vfsp->vfs_hash = rvfs_list[vhno].rvfs_head;
3509 rvfs_list[vhno].rvfs_head = vfsp;
3518 vfsp->vfs_hash = NULL;
3519 *hp = vfsp;
3528 vfs_hash_remove(struct vfs *vfsp)
3536 dev = expldev(vfsp->vfs_fsid.val[0]);
3544 if (rvfs_list[vhno].rvfs_head == vfsp) {
3545 rvfs_list[vhno].rvfs_head = vfsp->vfs_hash;
3551 if (tvfsp->vfs_hash == vfsp) {
3552 tvfsp->vfs_hash = vfsp->vfs_hash;
3566 vfs_list_add(struct vfs *vfsp)
3578 if (vfsp->vfs_implp == NULL)
3579 vfsimpl_setup(vfsp);
3580 vfs_mono_time(&vfsp->vfs_hrctime);
3588 vfsp->vfs_zone = curproc->p_zone;
3589 zone_init_ref(&vfsp->vfs_implp->vi_zone_ref);
3590 zone_hold_ref(vfsp->vfs_zone, &vfsp->vfs_implp->vi_zone_ref,
3596 zone = zone_find_by_path(refstr_value(vfsp->vfs_mntpt));
3616 if (vfsp == &root) {
3621 ASSERT(rootvfs == vfsp);
3627 zone->zone_vfslist = vfsp;
3634 rootvfs->vfs_prev->vfs_next = vfsp;
3635 vfsp->vfs_prev = rootvfs->vfs_prev;
3636 rootvfs->vfs_prev = vfsp;
3637 vfsp->vfs_next = rootvfs;
3644 zone->zone_vfslist = vfsp;
3646 zone->zone_vfslist->vfs_zone_prev->vfs_zone_next = vfsp;
3647 vfsp->vfs_zone_prev = zone->zone_vfslist->vfs_zone_prev;
3648 zone->zone_vfslist->vfs_zone_prev = vfsp;
3649 vfsp->vfs_zone_next = zone->zone_vfslist;
3658 vfs_hash_add(vfsp, 0);
3664 vfsp->vfs_mntix = ++vfs_curr_mntix;
3665 avl_add(&vfs_by_dev, vfsp);
3670 avl_add(&vfs_by_mntpnt, vfsp);
3681 vfs_list_remove(struct vfs *vfsp)
3685 zone = zone_find_by_path(refstr_value(vfsp->vfs_mntpt));
3691 ASSERT(vfsp != rootvfs);
3698 avl_remove(&vfs_by_mntpnt, vfsp);
3699 avl_remove(&vfs_by_dev, vfsp);
3704 vfs_hash_remove(vfsp);
3709 vfsp->vfs_prev->vfs_next = vfsp->vfs_next;
3710 vfsp->vfs_next->vfs_prev = vfsp->vfs_prev;
3711 vfsp->vfs_next = vfsp->vfs_prev = NULL;
3716 if (zone->zone_vfslist == vfsp)
3717 zone->zone_vfslist = vfsp->vfs_zone_next;
3719 if (vfsp->vfs_zone_next == vfsp) {
3720 ASSERT(vfsp->vfs_zone_prev == vfsp);
3721 ASSERT(zone->zone_vfslist == vfsp);
3725 vfsp->vfs_zone_prev->vfs_zone_next = vfsp->vfs_zone_next;
3726 vfsp->vfs_zone_next->vfs_zone_prev = vfsp->vfs_zone_prev;
3727 vfsp->vfs_zone_next = vfsp->vfs_zone_prev = NULL;
3740 struct vfs *vfsp;
3748 for (vfsp = rvfs_list[vhno].rvfs_head; vfsp; vfsp = vfsp->vfs_hash) {
3749 if (vfsp->vfs_fsid.val[0] == val0 &&
3750 vfsp->vfs_fsid.val[1] == val1) {
3751 VFS_HOLD(vfsp);
3753 return (vfsp);
3769 vfs_devmounting(dev_t dev, struct vfs *vfsp)
3777 if (mipp->mip_vfsp != vfsp)
3794 struct vfs *vfsp;
3811 vfsp = avl_nearest(&vfs_by_dev, index, AVL_AFTER);
3813 if (vfsp != NULL && vfsp->vfs_dev == dev)
3828 struct vfs *vfsp;
3845 vfsp = avl_nearest(&vfs_by_dev, index, AVL_AFTER);
3848 while (vfsp != NULL && vfsp->vfs_dev == dev) {
3856 if (ZONE_PATH_VISIBLE(refstr_value(vfsp->vfs_mntpt),
3858 VFS_HOLD(vfsp);
3862 vfsp = AVL_NEXT(&vfs_by_dev, vfsp);
3865 return (found ? vfsp : NULL);
3882 struct vfs *vfsp;
3905 vfsp = avl_nearest(&vfs_by_mntpnt, index, AVL_BEFORE);
3909 if (vfsp != NULL &&
3910 strcmp(refstr_value(vfsp->vfs_mntpt), mp) == 0)
3911 retvfsp = vfsp;
3915 vfsp = list->vfs_zone_prev;
3917 mntpt = refstr_value(vfsp->vfs_mntpt);
3920 retvfsp = vfsp;
3923 vfsp = vfsp->vfs_zone_prev;
3924 } while (vfsp != list->vfs_zone_prev);
3939 struct vfs *vfsp;
3943 vfsp = rootvfs;
3946 if (vfs_getops(vfsp) == ops) {
3950 vfsp = vfsp->vfs_next;
3951 } while (vfsp != rootvfs);
4265 vfsstray_sync(struct vfs *vfsp, short arg, struct cred *cr)
4299 vfs_EIO_sync(struct vfs *vfsp, short arg, struct cred *cr)
4403 vfs_t *vfsp;
4405 vfsp = kmem_cache_alloc(vfs_cache, kmflag);
4411 bzero(vfsp, sizeof (vfs_t));
4412 return (vfsp);
4416 vfs_free(vfs_t *vfsp)
4419 * One would be tempted to assert that "vfsp->vfs_count == 0".
4431 if (vfsp->vfs_femhead) {
4432 ASSERT(vfsp->vfs_femhead->femh_list == NULL);
4433 mutex_destroy(&vfsp->vfs_femhead->femh_lock);
4434 kmem_free(vfsp->vfs_femhead, sizeof (*(vfsp->vfs_femhead)));
4435 vfsp->vfs_femhead = NULL;
4438 if (vfsp->vfs_implp)
4439 vfsimpl_teardown(vfsp);
4440 sema_destroy(&vfsp->vfs_reflock);
4441 kmem_cache_free(vfs_cache, vfsp);
4448 vfs_hold(vfs_t *vfsp)
4450 atomic_inc_32(&vfsp->vfs_count);
4451 ASSERT(vfsp->vfs_count != 0);
4460 vfs_rele(vfs_t *vfsp)
4462 ASSERT(vfsp->vfs_count != 0);
4463 if (atomic_dec_32_nv(&vfsp->vfs_count) == 0) {
4464 VFS_FREEVFS(vfsp);
4465 lofi_remove(vfsp);
4466 if (vfsp->vfs_zone)
4467 zone_rele_ref(&vfsp->vfs_implp->vi_zone_ref,
4469 vfs_freemnttab(vfsp);
4470 vfs_free(vfsp);
4615 vfs_root_redev(vfs_t *vfsp, dev_t ndev, int fstype)
4619 vfs_hash_remove(vfsp);
4621 vfsp->vfs_dev = ndev;
4622 vfs_make_fsid(&vfsp->vfs_fsid, ndev, fstype);
4624 vfs_hash_add(vfsp, 1);
4832 vfs_set_feature(vfs_t *vfsp, vfs_feature_t feature)
4834 /* Note that vfs_featureset[] is found in *vfsp->vfs_implp */
4835 if (vfsp->vfs_implp == NULL)
4838 vfsp->vfs_featureset[VFTINDEX(feature)] |= VFTBITS(feature);
4842 vfs_clear_feature(vfs_t *vfsp, vfs_feature_t feature)
4844 /* Note that vfs_featureset[] is found in *vfsp->vfs_implp */
4845 if (vfsp->vfs_implp == NULL)
4847 vfsp->vfs_featureset[VFTINDEX(feature)] &= VFTBITS(~feature);
4855 vfs_has_feature(vfs_t *vfsp, vfs_feature_t feature)
4859 /* Note that vfs_featureset[] is found in *vfsp->vfs_implp */
4860 if (vfsp->vfs_implp == NULL)
4863 if (vfsp->vfs_featureset[VFTINDEX(feature)] & VFTBITS(feature))
4893 vfs_get_lofi(vfs_t *vfsp, vnode_t **vpp)
4899 if (vfsp->vfs_lofi_id == 0) {
4904 strsize = snprintf(NULL, 0, LOFINODE_PATH, vfsp->vfs_lofi_id);
4906 (void) snprintf(path, strsize + 1, LOFINODE_PATH, vfsp->vfs_lofi_id);