summaryrefslogtreecommitdiffstats
path: root/sys/fs
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1999-05-08 06:40:31 +0000
committerphk <phk@FreeBSD.org>1999-05-08 06:40:31 +0000
commit500e41bd7127ee03db75cd2a3704b8025c24e345 (patch)
tree8dc80d7dc8cd7f629dab45bcd87aa448cb9a4ca0 /sys/fs
parented809a974db9e6d86dabb993b9b0c6c49e1bbf32 (diff)
downloadFreeBSD-src-500e41bd7127ee03db75cd2a3704b8025c24e345.zip
FreeBSD-src-500e41bd7127ee03db75cd2a3704b8025c24e345.tar.gz
I got tired of seeing all the cdevsw[major(foo)] all over the place.
Made a new (inline) function devsw(dev_t dev) and substituted it. Changed to the BDEV variant to this format as well: bdevsw(dev_t dev) DEVFS will eventually benefit from this change too.
Diffstat (limited to 'sys/fs')
-rw-r--r--sys/fs/cd9660/cd9660_vfsops.c12
-rw-r--r--sys/fs/coda/coda_vfsops.c7
-rw-r--r--sys/fs/msdosfs/msdosfs_vfsops.c4
-rw-r--r--sys/fs/specfs/spec_vnops.c45
4 files changed, 37 insertions, 31 deletions
diff --git a/sys/fs/cd9660/cd9660_vfsops.c b/sys/fs/cd9660/cd9660_vfsops.c
index d10f49c..1de8b40 100644
--- a/sys/fs/cd9660/cd9660_vfsops.c
+++ b/sys/fs/cd9660/cd9660_vfsops.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)cd9660_vfsops.c 8.18 (Berkeley) 5/22/95
- * $Id: cd9660_vfsops.c,v 1.53 1999/04/27 11:15:47 phk Exp $
+ * $Id: cd9660_vfsops.c,v 1.54 1999/05/07 10:10:46 phk Exp $
*/
#include <sys/param.h>
@@ -118,7 +118,7 @@ iso_get_ssector(dev, p)
struct cdevsw *bd;
d_ioctl_t *ioctlp;
- bd = bdevsw(major(dev));
+ bd = bdevsw(dev);
ioctlp = bd->d_ioctl;
if (ioctlp == NULL)
return 0;
@@ -189,7 +189,7 @@ cd9660_mount(mp, path, data, ndp, p)
struct iso_mnt *imp = 0;
if ((mp->mnt_flag & MNT_ROOTFS) != 0) {
- if (bdevsw(major(rootdev))->d_flags & D_NOCLUSTERR)
+ if (bdevsw(rootdev)->d_flags & D_NOCLUSTERR)
mp->mnt_flag |= MNT_NOCLUSTERR;
return (iso_mountroot(mp, p));
}
@@ -206,7 +206,7 @@ cd9660_mount(mp, path, data, ndp, p)
*/
if (mp->mnt_flag & MNT_UPDATE) {
imp = VFSTOISOFS(mp);
- if (bdevsw(major(imp->im_devvp->v_rdev))->d_flags &
+ if (bdevsw(imp->im_devvp->v_rdev)->d_flags &
D_NOCLUSTERR)
mp->mnt_flag |= MNT_NOCLUSTERR;
if (args.fspec == 0)
@@ -226,7 +226,7 @@ cd9660_mount(mp, path, data, ndp, p)
return ENOTBLK;
}
if (major(devvp->v_rdev) >= nblkdev ||
- bdevsw(major(devvp->v_rdev)) == NULL) {
+ bdevsw(devvp->v_rdev) == NULL) {
vrele(devvp);
return ENXIO;
}
@@ -247,7 +247,7 @@ cd9660_mount(mp, path, data, ndp, p)
VOP_UNLOCK(devvp, 0, p);
if ((mp->mnt_flag & MNT_UPDATE) == 0) {
- if (bdevsw(major(devvp->v_rdev))->d_flags & D_NOCLUSTERR)
+ if (bdevsw(devvp->v_rdev)->d_flags & D_NOCLUSTERR)
mp->mnt_flag |= MNT_NOCLUSTERR;
error = iso_mountfs(devvp, mp, p, &args);
} else {
diff --git a/sys/fs/coda/coda_vfsops.c b/sys/fs/coda/coda_vfsops.c
index 8f6befe..3af2ad2 100644
--- a/sys/fs/coda/coda_vfsops.c
+++ b/sys/fs/coda/coda_vfsops.c
@@ -27,7 +27,7 @@
* Mellon the rights to redistribute these changes without encumbrance.
*
* @(#) src/sys/cfs/coda_vfsops.c,v 1.1.1.1 1998/08/29 21:14:52 rvb Exp $
- * $Id: coda_vfsops.c,v 1.10 1998/12/04 22:54:43 archie Exp $
+ * $Id: coda_vfsops.c,v 1.11 1999/01/17 20:25:17 peter Exp $
*
*/
@@ -47,6 +47,9 @@
/*
* HISTORY
* $Log: coda_vfsops.c,v $
+ * Revision 1.11 1999/01/17 20:25:17 peter
+ * Clean up the KLD/LKM goop a bit.
+ *
* Revision 1.10 1998/12/04 22:54:43 archie
* Examine all occurrences of sprintf(), strcat(), and str[n]cpy()
* for possible buffer overflow problems. Replaced most sprintf()'s
@@ -337,7 +340,7 @@ coda_mount(vfsp, path, data, ndp, p)
/*
* See if the device table matches our expectations.
*/
- if (cdevsw[major(dev)]->d_open != vc_nb_open)
+ if (devsw(dev)->d_open != vc_nb_open)
{
MARK_INT_FAIL(CODA_MOUNT_STATS);
return(ENXIO);
diff --git a/sys/fs/msdosfs/msdosfs_vfsops.c b/sys/fs/msdosfs/msdosfs_vfsops.c
index c062519..35c4cb2 100644
--- a/sys/fs/msdosfs/msdosfs_vfsops.c
+++ b/sys/fs/msdosfs/msdosfs_vfsops.c
@@ -1,4 +1,4 @@
-/* $Id: msdosfs_vfsops.c,v 1.42 1999/05/06 18:12:50 peter Exp $ */
+/* $Id: msdosfs_vfsops.c,v 1.43 1999/05/07 10:11:10 phk Exp $ */
/* $NetBSD: msdosfs_vfsops.c,v 1.51 1997/11/17 15:36:58 ws Exp $ */
/*-
@@ -299,7 +299,7 @@ msdosfs_mount(mp, path, data, ndp, p)
return (ENOTBLK);
}
if (major(devvp->v_rdev) >= nblkdev ||
- bdevsw(major(devvp->v_rdev)) == NULL) {
+ bdevsw(devvp->v_rdev) == NULL) {
vrele(devvp);
return (ENXIO);
}
diff --git a/sys/fs/specfs/spec_vnops.c b/sys/fs/specfs/spec_vnops.c
index 63f2b36..74c30c7 100644
--- a/sys/fs/specfs/spec_vnops.c
+++ b/sys/fs/specfs/spec_vnops.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)spec_vnops.c 8.14 (Berkeley) 5/21/95
- * $Id: spec_vnops.c,v 1.83 1999/05/06 20:00:27 phk Exp $
+ * $Id: spec_vnops.c,v 1.84 1999/05/07 10:11:05 phk Exp $
*/
#include <sys/param.h>
@@ -165,6 +165,7 @@ spec_open(ap)
dev_t bdev, dev = (dev_t)vp->v_rdev;
int maj = major(dev);
int error;
+ struct cdevsw *dsw;
/*
* Don't allow open if fs is mounted -nodev.
@@ -177,7 +178,8 @@ spec_open(ap)
case VCHR:
if ((u_int)maj >= nchrdev)
return (ENXIO);
- if ( (cdevsw[maj] == NULL) || (cdevsw[maj]->d_open == NULL))
+ dsw = devsw(dev);
+ if ( (dsw == NULL) || (dsw->d_open == NULL))
return ENXIO;
if (ap->a_cred != FSCRED && (ap->a_mode & FWRITE)) {
/*
@@ -185,8 +187,8 @@ spec_open(ap)
* opens for writing of any disk character devices.
*/
if (securelevel >= 2
- && cdevsw[maj]->d_bmaj != -1
- && (cdevsw[maj]->d_flags & D_TYPEMASK) == D_DISK)
+ && dsw->d_bmaj != -1
+ && (dsw->d_flags & D_TYPEMASK) == D_DISK)
return (EPERM);
/*
* When running in secure mode, do not allow opens
@@ -204,17 +206,18 @@ spec_open(ap)
return (EPERM);
}
}
- if ((cdevsw[maj]->d_flags & D_TYPEMASK) == D_TTY)
+ if ((dsw->d_flags & D_TYPEMASK) == D_TTY)
vp->v_flag |= VISTTY;
VOP_UNLOCK(vp, 0, p);
- error = (*cdevsw[maj]->d_open)(dev, ap->a_mode, S_IFCHR, p);
+ error = (*dsw->d_open)(dev, ap->a_mode, S_IFCHR, p);
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p);
return (error);
/* NOT REACHED */
case VBLK:
if ((u_int)maj >= nblkdev)
return (ENXIO);
- if ( (bdevsw(maj) == NULL) || (bdevsw(maj)->d_open == NULL))
+ dsw = bdevsw(dev);
+ if ( (dsw == NULL) || (dsw->d_open == NULL))
return ENXIO;
/*
* When running in very secure mode, do not allow
@@ -222,7 +225,7 @@ spec_open(ap)
*/
if (securelevel >= 2 && ap->a_cred != FSCRED &&
(ap->a_mode & FWRITE) &&
- (bdevsw(maj)->d_flags & D_TYPEMASK) == D_DISK)
+ (dsw->d_flags & D_TYPEMASK) == D_DISK)
return (EPERM);
/*
@@ -232,7 +235,7 @@ spec_open(ap)
error = vfs_mountedon(vp);
if (error)
return (error);
- return ((*bdevsw(maj)->d_open)(dev, ap->a_mode, S_IFBLK, p));
+ return ((*dsw->d_open)(dev, ap->a_mode, S_IFBLK, p));
/* NOT REACHED */
default:
break;
@@ -278,7 +281,7 @@ spec_read(ap)
case VCHR:
VOP_UNLOCK(vp, 0, p);
- error = (*cdevsw[major(vp->v_rdev)]->d_read)
+ error = (*devsw(vp->v_rdev)->d_read)
(vp->v_rdev, uio, ap->a_ioflag);
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p);
return (error);
@@ -295,7 +298,7 @@ spec_read(ap)
bsize = vp->v_specinfo->si_bsize_best;
- if ((ioctl = bdevsw(major(dev))->d_ioctl) != NULL &&
+ if ((ioctl = bdevsw(dev)->d_ioctl) != NULL &&
(*ioctl)(dev, DIOCGPART, (caddr_t)&dpart, FREAD, p) == 0 &&
dpart.part->p_fstype == FS_BSDFFS &&
dpart.part->p_frag != 0 && dpart.part->p_fsize != 0)
@@ -362,7 +365,7 @@ spec_write(ap)
case VCHR:
VOP_UNLOCK(vp, 0, p);
- error = (*cdevsw[major(vp->v_rdev)]->d_write)
+ error = (*devsw(vp->v_rdev)->d_write)
(vp->v_rdev, uio, ap->a_ioflag);
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p);
return (error);
@@ -379,7 +382,7 @@ spec_write(ap)
*/
bsize = vp->v_specinfo->si_bsize_best;
- if ((*bdevsw(major(vp->v_rdev))->d_ioctl)(vp->v_rdev, DIOCGPART,
+ if ((*bdevsw(vp->v_rdev)->d_ioctl)(vp->v_rdev, DIOCGPART,
(caddr_t)&dpart, FREAD, p) == 0) {
if (dpart.part->p_fstype == FS_BSDFFS &&
dpart.part->p_frag != 0 && dpart.part->p_fsize != 0)
@@ -434,10 +437,10 @@ spec_ioctl(ap)
switch (ap->a_vp->v_type) {
case VCHR:
- return ((*cdevsw[major(dev)]->d_ioctl)(dev, ap->a_command,
+ return ((*devsw(dev)->d_ioctl)(dev, ap->a_command,
ap->a_data, ap->a_fflag, ap->a_p));
case VBLK:
- return ((*bdevsw(major(dev))->d_ioctl)(dev, ap->a_command,
+ return ((*bdevsw(dev)->d_ioctl)(dev, ap->a_command,
ap->a_data, ap->a_fflag, ap->a_p));
default:
panic("spec_ioctl");
@@ -461,7 +464,7 @@ spec_poll(ap)
case VCHR:
dev = ap->a_vp->v_rdev;
- return (*cdevsw[major(dev)]->d_poll)(dev, ap->a_events, ap->a_p);
+ return (*devsw(dev)->d_poll)(dev, ap->a_events, ap->a_p);
default:
return (vop_defaultop((struct vop_generic_args *)ap));
@@ -553,7 +556,7 @@ spec_strategy(ap)
if (((bp->b_flags & B_READ) == 0) &&
(LIST_FIRST(&bp->b_dep)) != NULL && bioops.io_start)
(*bioops.io_start)(bp);
- (*bdevsw(major(bp->b_dev))->d_strategy)(bp);
+ (*bdevsw(bp->b_dev)->d_strategy)(bp);
return (0);
}
@@ -568,7 +571,7 @@ spec_freeblks(ap)
struct cdevsw *bsw;
struct buf *bp;
- bsw = bdevsw(major(ap->a_vp->v_rdev));
+ bsw = bdevsw(ap->a_vp->v_rdev);
if ((bsw->d_flags & D_CANFREE) == 0)
return (0);
bp = geteblk(ap->a_length);
@@ -650,7 +653,7 @@ spec_close(ap)
*/
if (vcount(vp) > 1 && (vp->v_flag & VXLOCK) == 0)
return (0);
- devclose = cdevsw[major(dev)]->d_close;
+ devclose = devsw(dev)->d_close;
mode = S_IFCHR;
break;
@@ -678,7 +681,7 @@ spec_close(ap)
if ((vcount(vp) > 1) && (vp->v_flag & VXLOCK) == 0)
return (0);
- devclose = bdevsw(major(dev))->d_close;
+ devclose = bdevsw(dev)->d_close;
mode = S_IFBLK;
break;
@@ -956,7 +959,7 @@ spec_getattr(ap)
vap->va_blocksize = MAXBSIZE;
}
- if ((*bdevsw(major(vp->v_rdev))->d_ioctl)(vp->v_rdev, DIOCGPART,
+ if ((*bdevsw(vp->v_rdev)->d_ioctl)(vp->v_rdev, DIOCGPART,
(caddr_t)&dpart, FREAD, ap->a_p) == 0) {
vap->va_bytes = dbtob(dpart.disklab->d_partitions
[minor(vp->v_rdev)].p_size);
OpenPOWER on IntegriCloud