summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authormillert <millert@openbsd.org>2007-11-28 19:31:31 +0000
committermillert <millert@openbsd.org>2007-11-28 19:31:31 +0000
commitd5927027f176654330fe02e14c51fee1d2dbb511 (patch)
tree4e8499356ce3e05a0c1731a4920479ca6da3baf2 /sys
parentfill the va_blocksize with something a litte saner, (diff)
downloadwireguard-openbsd-d5927027f176654330fe02e14c51fee1d2dbb511.tar.xz
wireguard-openbsd-d5927027f176654330fe02e14c51fee1d2dbb511.zip
g/c mfs_mountroot() and mfs_initminiroot(). We don't support root on
mfs. OK deraadt@
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/vfs_conf.c4
-rw-r--r--sys/ufs/mfs/mfs_extern.h4
-rw-r--r--sys/ufs/mfs/mfs_vfsops.c76
-rw-r--r--sys/ufs/mfs/mfs_vnops.c17
4 files changed, 6 insertions, 95 deletions
diff --git a/sys/kern/vfs_conf.c b/sys/kern/vfs_conf.c
index 2c011d3ee9a..3419dfb4713 100644
--- a/sys/kern/vfs_conf.c
+++ b/sys/kern/vfs_conf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: vfs_conf.c,v 1.33 2007/06/01 05:37:14 deraadt Exp $ */
+/* $OpenBSD: vfs_conf.c,v 1.34 2007/11/28 19:31:31 millert Exp $ */
/* $NetBSD: vfs_conf.c,v 1.21.4.1 1995/11/01 00:06:26 jtc Exp $ */
/*
@@ -131,7 +131,7 @@ static struct vfsconf vfsconflist[] = {
/* Memory-based Filesystem */
#ifdef MFS
- { &mfs_vfsops, MOUNT_MFS, 3, 0, MNT_LOCAL, mfs_mountroot, NULL },
+ { &mfs_vfsops, MOUNT_MFS, 3, 0, MNT_LOCAL, NULL, NULL },
#endif
#ifdef EXT2FS
diff --git a/sys/ufs/mfs/mfs_extern.h b/sys/ufs/mfs/mfs_extern.h
index fce0bbda04e..acd5b0aae35 100644
--- a/sys/ufs/mfs/mfs_extern.h
+++ b/sys/ufs/mfs/mfs_extern.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: mfs_extern.h,v 1.12 2006/03/28 13:18:17 pedro Exp $ */
+/* $OpenBSD: mfs_extern.h,v 1.13 2007/11/28 19:31:31 millert Exp $ */
/* $NetBSD: mfs_extern.h,v 1.4 1996/02/09 22:31:27 christos Exp $ */
/*-
@@ -44,8 +44,6 @@ struct mbuf;
__BEGIN_DECLS
/* mfs_vfsops.c */
-int mfs_mountroot(void);
-int mfs_initminiroot(caddr_t);
int mfs_mount(struct mount *, const char *, void *, struct nameidata *,
struct proc *);
int mfs_start(struct mount *, int, struct proc *);
diff --git a/sys/ufs/mfs/mfs_vfsops.c b/sys/ufs/mfs/mfs_vfsops.c
index adaf82c5f60..400bfa4a0c5 100644
--- a/sys/ufs/mfs/mfs_vfsops.c
+++ b/sys/ufs/mfs/mfs_vfsops.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: mfs_vfsops.c,v 1.35 2007/11/24 12:57:18 mpf Exp $ */
+/* $OpenBSD: mfs_vfsops.c,v 1.36 2007/11/28 19:31:31 millert Exp $ */
/* $NetBSD: mfs_vfsops.c,v 1.10 1996/02/09 22:31:28 christos Exp $ */
/*
@@ -55,9 +55,6 @@
#include <ufs/mfs/mfsnode.h>
#include <ufs/mfs/mfs_extern.h>
-caddr_t mfs_rootbase; /* address of mini-root in kernel virtual memory */
-u_long mfs_rootsize; /* size of mini-root in bytes */
-
static int mfs_minor; /* used for building internal dev_t */
extern int (**mfs_vnodeop_p)(void *);
@@ -82,77 +79,6 @@ const struct vfsops mfs_vfsops = {
};
/*
- * Called by main() when mfs is going to be mounted as root.
- */
-
-int
-mfs_mountroot(void)
-{
- struct fs *fs;
- struct mount *mp;
- struct proc *p = curproc;
- struct ufsmount *ump;
- struct mfsnode *mfsp;
- int error;
-
- if ((error = bdevvp(swapdev, &swapdev_vp)) ||
- (error = bdevvp(rootdev, &rootvp))) {
- printf("mfs_mountroot: can't setup bdevvp's");
- return (error);
- }
- if ((error = vfs_rootmountalloc("mfs", "mfs_root", &mp)) != 0)
- return (error);
- mfsp = malloc(sizeof *mfsp, M_MFSNODE, M_WAITOK);
- rootvp->v_data = mfsp;
- rootvp->v_op = mfs_vnodeop_p;
- rootvp->v_tag = VT_MFS;
- mfsp->mfs_baseoff = mfs_rootbase;
- mfsp->mfs_size = mfs_rootsize;
- mfsp->mfs_vnode = rootvp;
- mfsp->mfs_pid = p->p_pid;
- mfsp->mfs_buflist = (struct buf *)0;
- if ((error = ffs_mountfs(rootvp, mp, p)) != 0) {
- mp->mnt_vfc->vfc_refcount--;
- vfs_unbusy(mp);
- free(mp, M_MOUNT);
- free(mfsp, M_MFSNODE);
- return (error);
- }
-
- CIRCLEQ_INSERT_TAIL(&mountlist, mp, mnt_list);
- ump = VFSTOUFS(mp);
- fs = ump->um_fs;
- (void) copystr(mp->mnt_stat.f_mntonname, fs->fs_fsmnt, MNAMELEN - 1, 0);
- (void)ffs_statfs(mp, &mp->mnt_stat, p);
- vfs_unbusy(mp);
- inittodr((time_t)0);
-
- return (0);
-}
-
-/*
- * This is called early in boot to set the base address and size
- * of the mini-root.
- */
-int
-mfs_initminiroot(caddr_t base)
-{
- struct fs *fs = (struct fs *)(base + SBOFF);
- extern int (*mountroot)(void);
-
- /* check for valid super block */
- if (fs->fs_magic != FS_MAGIC || fs->fs_bsize > MAXBSIZE ||
- fs->fs_bsize < sizeof(struct fs))
- return (0);
- mountroot = mfs_mountroot;
- mfs_rootbase = base;
- mfs_rootsize = fs->fs_fsize * fs->fs_size;
- rootdev = makedev(255, mfs_minor);
- mfs_minor++;
- return (mfs_rootsize);
-}
-
-/*
* VFS Operations.
*
* mount system call
diff --git a/sys/ufs/mfs/mfs_vnops.c b/sys/ufs/mfs/mfs_vnops.c
index 63b7a2fd1aa..d9bb8465cd7 100644
--- a/sys/ufs/mfs/mfs_vnops.c
+++ b/sys/ufs/mfs/mfs_vnops.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: mfs_vnops.c,v 1.28 2007/06/01 23:47:57 deraadt Exp $ */
+/* $OpenBSD: mfs_vnops.c,v 1.29 2007/11/28 19:31:31 millert Exp $ */
/* $NetBSD: mfs_vnops.c,v 1.8 1996/03/17 02:16:32 christos Exp $ */
/*
@@ -140,25 +140,12 @@ mfs_strategy(void *v)
struct mfsnode *mfsp;
struct vnode *vp;
struct proc *p = curproc;
- int s;
if (!vfinddev(bp->b_dev, VBLK, &vp) || vp->v_usecount == 0)
panic("mfs_strategy: bad dev");
mfsp = VTOMFS(vp);
- /* check for mini-root access */
- if (mfsp->mfs_pid == 0) {
- caddr_t base;
-
- base = mfsp->mfs_baseoff + (bp->b_blkno << DEV_BSHIFT);
- if (bp->b_flags & B_READ)
- bcopy(base, bp->b_data, bp->b_bcount);
- else
- bcopy(bp->b_data, base, bp->b_bcount);
- s = splbio();
- biodone(bp);
- splx(s);
- } else if (p != NULL && mfsp->mfs_pid == p->p_pid) {
+ if (p != NULL && mfsp->mfs_pid == p->p_pid) {
mfs_doio(bp, mfsp->mfs_baseoff);
} else {
bp->b_actf = mfsp->mfs_buflist;