Lines Matching full:mp
215 fuse_vfs_remount(struct mount *mp, struct thread *td, uint64_t mntopts,
219 struct fuse_data *data = fuse_get_mpdata(mp);
226 if ((mp->mnt_flag ^ data->mnt_flag) & cant_update_opts) {
230 data, mp, err);
240 data, mp, err);
247 "device is dead during mount", data, mp, err);
266 fuse_vfsop_fhtovp(struct mount *mp, struct fid *fhp, int flags,
274 if (!(fuse_get_mpdata(mp)->dataflags & FSESS_EXPORT_SUPPORT))
277 error = VFS_VGET(mp, ffhp->nid, LK_EXCLUSIVE, &nvp);
294 fuse_vfsop_mount(struct mount *mp)
321 opts = mp->mnt_optnew;
353 if (mp->mnt_flag & MNT_UPDATE) {
354 return fuse_vfs_remount(mp, td, mntopts, max_read,
387 "invalid or not opened device", data, mp, err);
394 "device is dead during mount", data, mp, err);
411 data->mp = mp;
416 data->mnt_flag = mp->mnt_flag & MNT_UPDATEMASK;
419 vfs_getnewfsid(mp);
420 MNT_ILOCK(mp);
421 mp->mnt_data = data;
426 mp->mnt_flag &= ~MNT_LOCAL;
427 mp->mnt_kern_flag |= MNTK_USES_BCACHE;
432 mp->mnt_kern_flag |= MNTK_NULL_NOCACHE;
433 MNT_IUNLOCK(mp);
435 mp->mnt_stat.f_iosize = maxbcachebuf;
437 strlcat(mp->mnt_stat.f_fstypename, ".", MFSNAMELEN);
438 strlcat(mp->mnt_stat.f_fstypename, subtype, MFSNAMELEN);
440 memset(mp->mnt_stat.f_mntfromname, 0, MNAMELEN);
442 strlcpy(mp->mnt_stat.f_mntfromname,
444 mp->mnt_iosize_max = maxphys;
452 if (data != NULL && data->mp == mp) {
458 "mount failed, destroy device", data, mp, err);
459 data->mp = NULL;
460 mp->mnt_data = NULL;
470 fuse_vfsop_unmount(struct mount *mp, int mntflags)
483 data = fuse_get_mpdata(mp);
487 /* There is 1 extra root vnode reference (mp->mnt_data). */
497 err = vflush(mp, 0, flags, td);
504 if (fsess_maybe_impl(mp, FUSE_DESTROY)) {
506 fdisp_make(&fdi, FUSE_DESTROY, mp, 0, td, NULL);
516 data->mp = NULL;
521 MNT_ILOCK(mp);
522 mp->mnt_data = NULL;
523 MNT_IUNLOCK(mp);
533 fuse_vfsop_vget(struct mount *mp, ino_t ino, int flags, struct vnode **vpp)
535 struct fuse_data *data = fuse_get_mpdata(mp);
551 SDT_PROBE1(fusefs, , vfsops, invalidate_without_export, mp);
555 error = fuse_internal_get_cached_vnode(mp, ino, flags, vpp);
563 fdisp_make(&fdi, FUSE_LOOKUP, mp, nodeid, td, td->td_ucred);
578 error = fuse_vnode_get(mp, feo, nodeid, NULL, vpp, NULL, vtyp);
599 fuse_vfsop_root(struct mount *mp, int lkflags, struct vnode **vpp)
601 struct fuse_data *data = fuse_get_mpdata(mp);
609 err = fuse_vnode_get(mp, NULL, FUSE_ROOT_ID, NULL, vpp, NULL,
635 fuse_vfsop_statfs(struct mount *mp, struct statfs *sbp)
643 data = fuse_get_mpdata(mp);
649 fdisp_make(&fdi, FUSE_STATFS, mp, FUSE_ROOT_ID, NULL, NULL);