aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/vfs_extattr.c
diff options
context:
space:
mode:
authorGarrett Wollman <wollman@FreeBSD.org>1994-09-21 03:47:43 +0000
committerGarrett Wollman <wollman@FreeBSD.org>1994-09-21 03:47:43 +0000
commitc901836c143aeb5695c20bb3a7c28d297e5829d3 (patch)
tree1c73df5527fa425afd9acc6b6f44948163165c7b /sys/kern/vfs_extattr.c
parent84cc2dc3328a37262a2dcd994aab6c0f479a1dc3 (diff)
downloadsrc-c901836c143aeb5695c20bb3a7c28d297e5829d3.tar.gz
src-c901836c143aeb5695c20bb3a7c28d297e5829d3.zip
Implemented loadable VFS modules, and made most existing filesystems
loadable. (NFS is a notable exception.)
Notes
Notes: svn path=/head/; revision=2946
Diffstat (limited to 'sys/kern/vfs_extattr.c')
-rw-r--r--sys/kern/vfs_extattr.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/kern/vfs_extattr.c b/sys/kern/vfs_extattr.c
index 6f4d9b0c87b7..93b01911585b 100644
--- a/sys/kern/vfs_extattr.c
+++ b/sys/kern/vfs_extattr.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)vfs_syscalls.c 8.13 (Berkeley) 4/15/94
- * $Id: vfs_syscalls.c,v 1.5 1994/09/02 04:14:44 davidg Exp $
+ * $Id: vfs_syscalls.c,v 1.6 1994/09/02 10:23:43 davidg Exp $
*/
#include <sys/param.h>
@@ -135,6 +135,7 @@ mount(p, uap, retval)
M_MOUNT, M_WAITOK);
bzero((char *)mp, (u_long)sizeof(struct mount));
mp->mnt_op = vfssw[uap->type];
+ mp->mnt_vfc = vfsconf[uap->type];
if (error = vfs_lock(mp)) {
free((caddr_t)mp, M_MOUNT);
vput(vp);
@@ -148,6 +149,8 @@ mount(p, uap, retval)
}
vp->v_mountedhere = mp;
mp->mnt_vnodecovered = vp;
+ vfsconf[uap->type]->vfc_refcount++;
+
update:
/*
* Set the mount level flags.
@@ -188,6 +191,7 @@ update:
vfs_unlock(mp);
free((caddr_t)mp, M_MOUNT);
vput(vp);
+ vfsconf[uap->type]->vfc_refcount--;
}
return (error);
}
@@ -282,6 +286,7 @@ dounmount(mp, flags, p)
TAILQ_REMOVE(&mountlist, mp, mnt_list);
mp->mnt_vnodecovered->v_mountedhere = (struct mount *)0;
vfs_unlock(mp);
+ mp->mnt_vfc->vfc_refcount--;
if (mp->mnt_vnodelist.lh_first != NULL)
panic("unmount: dangling vnode");
free((caddr_t)mp, M_MOUNT);