diff options
author | bde <bde@FreeBSD.org> | 1998-10-27 11:47:08 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 1998-10-27 11:47:08 +0000 |
commit | bd7a76a93864fc6cb49f8b4df53b36ad095f541f (patch) | |
tree | eb2b7170cdc8f6a7aea96c9c9fe4c6fc97b43819 /sys | |
parent | 779bdcf310874a72f55f8b61a2eae33c63538806 (diff) | |
download | FreeBSD-src-bd7a76a93864fc6cb49f8b4df53b36ad095f541f.zip FreeBSD-src-bd7a76a93864fc6cb49f8b4df53b36ad095f541f.tar.gz |
Oops, the redundant tests for major numbers weren't redundant here.
They checked for the magic major number for the "device" behind mfs
mount points. Use a more obvious check for this device.
Debugged by: Andrew Gallatin <gallatin@cs.duke.edu>
Diffstat (limited to 'sys')
-rw-r--r-- | sys/gnu/ext2fs/ext2_bmap.c | 5 | ||||
-rw-r--r-- | sys/gnu/fs/ext2fs/ext2_bmap.c | 5 | ||||
-rw-r--r-- | sys/ufs/ffs/ffs_vfsops.c | 12 | ||||
-rw-r--r-- | sys/ufs/ufs/ufs_bmap.c | 5 |
4 files changed, 14 insertions, 13 deletions
diff --git a/sys/gnu/ext2fs/ext2_bmap.c b/sys/gnu/ext2fs/ext2_bmap.c index ab88279..8d23b7e 100644 --- a/sys/gnu/ext2fs/ext2_bmap.c +++ b/sys/gnu/ext2fs/ext2_bmap.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)ufs_bmap.c 8.7 (Berkeley) 3/21/95 - * $Id: ufs_bmap.c,v 1.22 1998/08/18 03:54:39 bde Exp $ + * $Id: ufs_bmap.c,v 1.23 1998/10/26 08:53:13 bde Exp $ */ #include <sys/param.h> @@ -149,7 +149,8 @@ ufs_bmaparray(vp, bn, bnp, ap, nump, runp, runb) */ devvp = ip->i_devvp; - if (devvp != NULL && devvp->v_type == VBLK) { + if (devvp != NULL && devvp->v_tag != VT_MFS && + devvp->v_type == VBLK) { if (bdevsw[major(devvp->v_rdev)]->d_maxio > MAXPHYS) { maxrun = MAXPHYS; vp->v_maxio = MAXPHYS; diff --git a/sys/gnu/fs/ext2fs/ext2_bmap.c b/sys/gnu/fs/ext2fs/ext2_bmap.c index ab88279..8d23b7e 100644 --- a/sys/gnu/fs/ext2fs/ext2_bmap.c +++ b/sys/gnu/fs/ext2fs/ext2_bmap.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)ufs_bmap.c 8.7 (Berkeley) 3/21/95 - * $Id: ufs_bmap.c,v 1.22 1998/08/18 03:54:39 bde Exp $ + * $Id: ufs_bmap.c,v 1.23 1998/10/26 08:53:13 bde Exp $ */ #include <sys/param.h> @@ -149,7 +149,8 @@ ufs_bmaparray(vp, bn, bnp, ap, nump, runp, runb) */ devvp = ip->i_devvp; - if (devvp != NULL && devvp->v_type == VBLK) { + if (devvp != NULL && devvp->v_tag != VT_MFS && + devvp->v_type == VBLK) { if (bdevsw[major(devvp->v_rdev)]->d_maxio > MAXPHYS) { maxrun = MAXPHYS; vp->v_maxio = MAXPHYS; diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c index fbfe118..0e640c0 100644 --- a/sys/ufs/ffs/ffs_vfsops.c +++ b/sys/ufs/ffs/ffs_vfsops.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)ffs_vfsops.c 8.31 (Berkeley) 5/20/95 - * $Id: ffs_vfsops.c,v 1.89 1998/10/25 17:44:57 phk Exp $ + * $Id: ffs_vfsops.c,v 1.90 1998/10/25 19:02:48 bde Exp $ */ #include "opt_quota.h" @@ -453,13 +453,12 @@ ffs_reload(mp, cred, p) panic("ffs_reload: dirty1"); dev = devvp->v_rdev; + /* * Only VMIO the backing device if the backing device is a real - * block device. This excludes the original MFS implementation. - * Note that it is optional that the backing device be VMIOed. This - * increases the opportunity for metadata caching. + * block device. See ffs_mountmfs() for more details. */ - if (devvp->v_type == VBLK) { + if (devvp->v_tag != VT_MFS && devvp->v_type == VBLK) { simple_lock(&devvp->v_interlock); vfs_object_create(devvp, p, p->p_ucred, 0); } @@ -614,12 +613,11 @@ ffs_mountfs(devvp, mp, p, malloctype) * Note that it is optional that the backing device be VMIOed. This * increases the opportunity for metadata caching. */ - if (devvp->v_type == VBLK) { + if (devvp->v_tag != VT_MFS && devvp->v_type == VBLK) { simple_lock(&devvp->v_interlock); vfs_object_create(devvp, p, p->p_ucred, 0); } - ronly = (mp->mnt_flag & MNT_RDONLY) != 0; error = VOP_OPEN(devvp, ronly ? FREAD : FREAD|FWRITE, FSCRED, p); if (error) diff --git a/sys/ufs/ufs/ufs_bmap.c b/sys/ufs/ufs/ufs_bmap.c index ab88279..8d23b7e 100644 --- a/sys/ufs/ufs/ufs_bmap.c +++ b/sys/ufs/ufs/ufs_bmap.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)ufs_bmap.c 8.7 (Berkeley) 3/21/95 - * $Id: ufs_bmap.c,v 1.22 1998/08/18 03:54:39 bde Exp $ + * $Id: ufs_bmap.c,v 1.23 1998/10/26 08:53:13 bde Exp $ */ #include <sys/param.h> @@ -149,7 +149,8 @@ ufs_bmaparray(vp, bn, bnp, ap, nump, runp, runb) */ devvp = ip->i_devvp; - if (devvp != NULL && devvp->v_type == VBLK) { + if (devvp != NULL && devvp->v_tag != VT_MFS && + devvp->v_type == VBLK) { if (bdevsw[major(devvp->v_rdev)]->d_maxio > MAXPHYS) { maxrun = MAXPHYS; vp->v_maxio = MAXPHYS; |