summaryrefslogtreecommitdiffstats
path: root/sys/fs/nullfs/null_vfsops.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/fs/nullfs/null_vfsops.c')
-rw-r--r--sys/fs/nullfs/null_vfsops.c40
1 files changed, 15 insertions, 25 deletions
diff --git a/sys/fs/nullfs/null_vfsops.c b/sys/fs/nullfs/null_vfsops.c
index 754a121..5b49fbb 100644
--- a/sys/fs/nullfs/null_vfsops.c
+++ b/sys/fs/nullfs/null_vfsops.c
@@ -93,9 +93,7 @@ nullfs_mount(mp, path, data, ndp, p)
u_int size;
int isvnunlocked = 0;
-#ifdef DEBUG
- printf("nullfs_mount(mp = %p)\n", (void *)mp);
-#endif
+ NULLFSDEBUG("nullfs_mount(mp = %p)\n", (void *)mp);
/*
* Update is a no-op
@@ -149,9 +147,7 @@ nullfs_mount(mp, path, data, ndp, p)
* Check multi null mount to avoid `lock against myself' panic.
*/
if (lowerrootvp == VTONULL(mp->mnt_vnodecovered)->null_lowervp) {
-#ifdef DEBUG
- printf("nullfs_mount: multi null mount?\n");
-#endif
+ NULLFSDEBUG("nullfs_mount: multi null mount?\n");
return (EDEADLK);
}
@@ -199,10 +195,8 @@ nullfs_mount(mp, path, data, ndp, p)
&size);
bzero(mp->mnt_stat.f_mntfromname + size, MNAMELEN - size);
(void)nullfs_statfs(mp, &mp->mnt_stat, p);
-#ifdef DEBUG
- printf("nullfs_mount: lower %s, alias at %s\n",
+ NULLFSDEBUG("nullfs_mount: lower %s, alias at %s\n",
mp->mnt_stat.f_mntfromname, mp->mnt_stat.f_mntonname);
-#endif
return (0);
}
@@ -231,12 +225,11 @@ nullfs_unmount(mp, mntflags, p)
struct proc *p;
{
struct vnode *nullm_rootvp = MOUNTTONULLMOUNT(mp)->nullm_rootvp;
+ void *mntdata;
int error;
int flags = 0;
-#ifdef DEBUG
- printf("nullfs_unmount(mp = %p)\n", (void *)mp);
-#endif
+ NULLFSDEBUG("nullfs_unmount: mp = %p\n", (void *)mp);
if (mntflags & MNT_FORCE)
flags |= FORCECLOSE;
@@ -257,7 +250,7 @@ nullfs_unmount(mp, mntflags, p)
if (error)
return (error);
-#ifdef DEBUG
+#ifdef NULLFS_DEBUG
vprint("alias root of lower", nullm_rootvp);
#endif
/*
@@ -271,8 +264,9 @@ nullfs_unmount(mp, mntflags, p)
/*
* Finally, throw away the null_mount structure
*/
- free(mp->mnt_data, M_NULLFSMNT); /* XXX */
+ mntdata = mp->mnt_data;
mp->mnt_data = 0;
+ free(mntdata, M_NULLFSMNT); /* XXX */
return 0;
}
@@ -284,29 +278,27 @@ nullfs_root(mp, vpp)
struct proc *p = curproc; /* XXX */
struct vnode *vp;
-#ifdef DEBUG
- printf("nullfs_root(mp = %p, vp = %p->%p)\n", (void *)mp,
+ NULLFSDEBUG("nullfs_root(mp = %p, vp = %p->%p)\n", (void *)mp,
(void *)MOUNTTONULLMOUNT(mp)->nullm_rootvp,
(void *)NULLVPTOLOWERVP(MOUNTTONULLMOUNT(mp)->nullm_rootvp));
-#endif
/*
* Return locked reference to root.
*/
vp = MOUNTTONULLMOUNT(mp)->nullm_rootvp;
VREF(vp);
+#ifdef NULLFS_DEBUG
if (VOP_ISLOCKED(vp, NULL)) {
/*
* XXX
* Should we check type of node?
*/
-#ifdef DEBUG
printf("nullfs_root: multi null mount?\n");
-#endif
vrele(vp);
return (EDEADLK);
- } else
- vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p);
+ }
+#endif
+ vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p);
*vpp = vp;
return 0;
}
@@ -331,11 +323,9 @@ nullfs_statfs(mp, sbp, p)
int error;
struct statfs mstat;
-#ifdef DEBUG
- printf("nullfs_statfs(mp = %p, vp = %p->%p)\n", (void *)mp,
+ NULLFSDEBUG("nullfs_statfs(mp = %p, vp = %p->%p)\n", (void *)mp,
(void *)MOUNTTONULLMOUNT(mp)->nullm_rootvp,
(void *)NULLVPTOLOWERVP(MOUNTTONULLMOUNT(mp)->nullm_rootvp));
-#endif
bzero(&mstat, sizeof(mstat));
@@ -440,7 +430,7 @@ static struct vfsops null_vfsops = {
nullfs_checkexp,
nullfs_vptofh,
nullfs_init,
- vfs_stduninit,
+ nullfs_uninit,
nullfs_extattrctl,
};
OpenPOWER on IntegriCloud