Lines Matching full:mp
78 nullfs_mount(struct mount *mp) in nullfs_mount() argument
89 NULLFSDEBUG("nullfs_mount(mp = %p)\n", (void *)mp); in nullfs_mount()
91 if (mp->mnt_flag & MNT_ROOTFS) in nullfs_mount()
97 if (mp->mnt_flag & MNT_UPDATE) { in nullfs_mount()
101 if (vfs_flagopt(mp->mnt_optnew, "export", NULL, 0)) in nullfs_mount()
110 error = vfs_getopt(mp->mnt_optnew, "from", (void **)&target, &len); in nullfs_mount()
112 error = vfs_getopt(mp->mnt_optnew, "target", (void **)&target, &len); in nullfs_mount()
119 if (mp->mnt_vnodecovered->v_op == &null_vnodeops && in nullfs_mount()
120 VOP_ISLOCKED(mp->mnt_vnodecovered) == LK_EXCLUSIVE) { in nullfs_mount()
121 VOP_UNLOCK(mp->mnt_vnodecovered); in nullfs_mount()
139 vn_lock(mp->mnt_vnodecovered, LK_EXCLUSIVE | LK_RETRY); in nullfs_mount()
153 if (mp->mnt_vnodecovered->v_op == &null_vnodeops) { in nullfs_mount()
154 nn = VTONULL(mp->mnt_vnodecovered); in nullfs_mount()
167 lowerrootvp->v_type != mp->mnt_vnodecovered->v_type) { in nullfs_mount()
180 xmp->nullm_vfs = vfs_register_upper_from_vp(lowerrootvp, mp, in nullfs_mount()
189 mp->mnt_data = xmp; in nullfs_mount()
194 error = null_nodeget(mp, lowerrootvp, &nullm_rootvp); in nullfs_mount()
203 MNT_ILOCK(mp); in nullfs_mount()
204 mp->mnt_flag |= MNT_LOCAL; in nullfs_mount()
205 MNT_IUNLOCK(mp); in nullfs_mount()
208 if (vfs_getopt(mp->mnt_optnew, "cache", NULL, NULL) == 0) { in nullfs_mount()
210 } else if (vfs_getopt(mp->mnt_optnew, "nocache", NULL, NULL) == 0) { in nullfs_mount()
218 vfs_register_for_notification(xmp->nullm_vfs, mp, in nullfs_mount()
222 if (lowerrootvp == mp->mnt_vnodecovered) { in nullfs_mount()
228 MNT_ILOCK(mp); in nullfs_mount()
230 mp->mnt_kern_flag |= lowerrootvp->v_mount->mnt_kern_flag & in nullfs_mount()
234 mp->mnt_kern_flag |= MNTK_NOMSYNC | MNTK_UNLOCKED_INSMNTQUE; in nullfs_mount()
235 mp->mnt_kern_flag |= lowerrootvp->v_mount->mnt_kern_flag & in nullfs_mount()
237 MNT_IUNLOCK(mp); in nullfs_mount()
238 vfs_getnewfsid(mp); in nullfs_mount()
239 vfs_mountedfrom(mp, target); in nullfs_mount()
243 mp->mnt_stat.f_mntfromname, mp->mnt_stat.f_mntonname); in nullfs_mount()
251 nullfs_unmount(struct mount *mp, int mntflags) in nullfs_unmount() argument
256 NULLFSDEBUG("nullfs_unmount: mp = %p\n", (void *)mp); in nullfs_unmount()
265 error = vflush(mp, 0, flags, curthread); in nullfs_unmount()
268 MNT_ILOCK(mp); in nullfs_unmount()
269 if (mp->mnt_nvnodelistsize == 0) { in nullfs_unmount()
270 MNT_IUNLOCK(mp); in nullfs_unmount()
273 MNT_IUNLOCK(mp); in nullfs_unmount()
281 mntdata = mp->mnt_data; in nullfs_unmount()
286 if (mntdata->nullm_lowerrootvp == mp->mnt_vnodecovered) { in nullfs_unmount()
287 vn_lock(mp->mnt_vnodecovered, LK_EXCLUSIVE | LK_RETRY | LK_CANRECURSE); in nullfs_unmount()
288 mp->mnt_vnodecovered->v_vflag &= ~VV_CROSSLOCK; in nullfs_unmount()
289 VOP_UNLOCK(mp->mnt_vnodecovered); in nullfs_unmount()
293 mp->mnt_data = NULL; in nullfs_unmount()
299 nullfs_root(struct mount *mp, int flags, struct vnode **vpp) in nullfs_root() argument
305 mntdata = MOUNTTONULLMOUNT(mp); in nullfs_root()
306 NULLFSDEBUG("nullfs_root(mp = %p, vp = %p)\n", mp, in nullfs_root()
311 error = null_nodeget(mp, mntdata->nullm_lowerrootvp, &vp); in nullfs_root()
320 nullfs_quotactl(struct mount *mp, int cmd, uid_t uid, void *arg, bool *mp_busy) in nullfs_quotactl() argument
327 mntdata = MOUNTTONULLMOUNT(mp); in nullfs_quotactl()
338 vfs_unbusy(mp); in nullfs_quotactl()
351 nullfs_statfs(struct mount *mp, struct statfs *sbp) in nullfs_statfs() argument
356 NULLFSDEBUG("nullfs_statfs(mp = %p, vp = %p->%p)\n", (void *)mp, in nullfs_statfs()
357 (void *)MOUNTTONULLMOUNT(mp)->nullm_rootvp, in nullfs_statfs()
358 (void *)NULLVPTOLOWERVP(MOUNTTONULLMOUNT(mp)->nullm_rootvp)); in nullfs_statfs()
362 error = VFS_STATFS(MOUNTTONULLMOUNT(mp)->nullm_vfs, mstat); in nullfs_statfs()
382 nullfs_sync(struct mount *mp, int waitfor) in nullfs_sync() argument
391 nullfs_vget(struct mount *mp, ino_t ino, int flags, struct vnode **vpp) in nullfs_vget() argument
398 error = VFS_VGET(MOUNTTONULLMOUNT(mp)->nullm_vfs, ino, flags, vpp); in nullfs_vget()
401 return (null_nodeget(mp, *vpp, vpp)); in nullfs_vget()
405 nullfs_fhtovp(struct mount *mp, struct fid *fidp, int flags, struct vnode **vpp) in nullfs_fhtovp() argument
409 error = VFS_FHTOVP(MOUNTTONULLMOUNT(mp)->nullm_vfs, fidp, flags, in nullfs_fhtovp()
413 return (null_nodeget(mp, *vpp, vpp)); in nullfs_fhtovp()
417 nullfs_extattrctl(struct mount *mp, int cmd, struct vnode *filename_vp, in nullfs_extattrctl() argument
421 return (VFS_EXTATTRCTL(MOUNTTONULLMOUNT(mp)->nullm_vfs, cmd, in nullfs_extattrctl()
426 nullfs_reclaim_lowervp(struct mount *mp, struct vnode *lowervp) in nullfs_reclaim_lowervp() argument
430 vp = null_hashget(mp, lowervp); in nullfs_reclaim_lowervp()
439 nullfs_unlink_lowervp(struct mount *mp, struct vnode *lowervp) in nullfs_unlink_lowervp() argument
444 vp = null_hashget(mp, lowervp); in nullfs_unlink_lowervp()