This removes support for tape BLOCK devices from the kernel.

(Since people were confused: Everything you typically do with tapes,
like dump/restore, tar, mt, etc. uses character devices and is not
affected by this.  You would only use a block device to mount(8) a
tape.)

Anything I missed?  OK?


Cleaning up /dev will be a separate step.


Index: arch/alpha/alpha/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/alpha/alpha/conf.c,v
retrieving revision 1.82
diff -u -p -r1.82 conf.c
--- arch/alpha/alpha/conf.c     2 Sep 2016 17:06:12 -0000       1.82
+++ arch/alpha/alpha/conf.c     4 Sep 2016 09:47:52 -0000
@@ -57,7 +57,7 @@ struct bdevsw bdevsw[] =
 {
        bdev_disk_init(NWD,wd),         /* 0: ST506/ESDI/IDE disk */
        bdev_swap_init(1,sw),           /* 1: swap pseudo-device */
-       bdev_tape_init(NST,st),         /* 2: SCSI tape */
+       bdev_notdef(),                  /* 2: was: SCSI tape */
        bdev_disk_init(NCD,cd),         /* 3: SCSI CD-ROM */
        bdev_disk_init(NFD,fd),         /* 4: Floppy disk */
        bdev_notdef(),                  /* 5 */
@@ -260,7 +260,7 @@ int chrtoblktbl[] = {
        /*  9 */        9,              /* vnd */
        /* 10 */        NODEV,
        /* 11 */        NODEV,
-       /* 12 */        2,              /* st */
+       /* 12 */        NODEV,
        /* 13 */        3,              /* cd */
        /* 14 */        NODEV,
        /* 15 */        NODEV,
Index: arch/amd64/amd64/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/amd64/amd64/conf.c,v
retrieving revision 1.59
diff -u -p -r1.59 conf.c
--- arch/amd64/amd64/conf.c     2 Sep 2016 17:06:12 -0000       1.59
+++ arch/amd64/amd64/conf.c     4 Sep 2016 09:47:52 -0000
@@ -58,7 +58,7 @@ struct bdevsw bdevsw[] =
        bdev_disk_init(NFD,fd),         /* 2: floppy diskette */
        bdev_notdef(),                  /* 3 */
        bdev_disk_init(NSD,sd),         /* 4: SCSI disk */
-       bdev_tape_init(NST,st),         /* 5: SCSI tape */
+       bdev_notdef(),                  /* 5: was: SCSI tape */
        bdev_disk_init(NCD,cd),         /* 6: SCSI CD-ROM */
        bdev_notdef(),                  /* 7 */
        bdev_notdef(),                  /* 8 */
@@ -355,7 +355,7 @@ int chrtoblktbl[] = {
        /* 11 */        NODEV,
        /* 12 */        NODEV,
        /* 13 */        4,              /* sd */
-       /* 14 */        5,              /* st */
+       /* 14 */        NODEV,
        /* 15 */        6,              /* cd */
        /* 16 */        NODEV,
        /* 17 */        NODEV,
Index: arch/arm/arm/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/conf.c,v
retrieving revision 1.48
diff -u -p -r1.48 conf.c
--- arch/arm/arm/conf.c 2 Sep 2016 17:06:12 -0000       1.48
+++ arch/arm/arm/conf.c 4 Sep 2016 09:47:52 -0000
@@ -173,7 +173,7 @@ struct bdevsw bdevsw[] = {
        bdev_notdef(),                  /* 22: */
        bdev_notdef(),                  /* 23: */
        bdev_disk_init(NSD,sd),         /* 24: SCSI disk */
-       bdev_tape_init(NST,st),         /* 25: SCSI tape */
+       bdev_notdef(),                  /* 25: was: SCSI tape */
        bdev_disk_init(NCD,cd),         /* 26: SCSI cdrom */
        bdev_notdef(),                  /* 27: */
        bdev_notdef(),                  /* 28: */
@@ -448,7 +448,7 @@ int chrtoblktbl[] = {
     /* 22 */        NODEV,
     /* 23 */        NODEV,
     /* 24 */        24,                /* sd */
-    /* 25 */        25,                /* st */
+    /* 25 */        NODEV,
     /* 26 */        26,                /* cd */
 };
 int nchrtoblktbl = nitems(chrtoblktbl);
Index: arch/hppa/hppa/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/hppa/hppa/conf.c,v
retrieving revision 1.65
diff -u -p -r1.65 conf.c
--- arch/hppa/hppa/conf.c       2 Sep 2016 17:06:12 -0000       1.65
+++ arch/hppa/hppa/conf.c       4 Sep 2016 09:47:52 -0000
@@ -65,7 +65,7 @@ struct bdevsw   bdevsw[] =
        bdev_disk_init(NVND,vnd),       /*  2: vnode disk driver */
        bdev_disk_init(NRD,rd),         /*  3: RAM disk */
        bdev_disk_init(NSD,sd),         /*  4: SCSI disk */
-       bdev_tape_init(NST,st),         /*  5: SCSI tape */
+       bdev_notdef(),                  /*  5: was: SCSI tape */
        bdev_disk_init(NCD,cd),         /*  6: SCSI CD-ROM */
        bdev_disk_init(NFD,fd),         /*  7: floppy drive */
        bdev_disk_init(NWD,wd),         /*  8: ST506 drive */
@@ -215,7 +215,7 @@ int chrtoblktbl[] = {
        /*  8 */        2,              /* vnd */
        /*  9 */        3,              /* rd */
        /* 10 */        4,              /* sd */
-       /* 11 */        5,              /* st */
+       /* 11 */        NODEV,
        /* 12 */        6,              /* cd */
        /* 13 */        NODEV,
        /* 14 */        NODEV,
Index: arch/i386/i386/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/i386/i386/conf.c,v
retrieving revision 1.156
diff -u -p -r1.156 conf.c
--- arch/i386/i386/conf.c       2 Sep 2016 17:06:12 -0000       1.156
+++ arch/i386/i386/conf.c       4 Sep 2016 09:47:52 -0000
@@ -60,7 +60,7 @@ struct bdevsw bdevsw[] =
        bdev_disk_init(NFD,fd),         /* 2: floppy diskette */
        bdev_notdef(),                  /* 3 */
        bdev_disk_init(NSD,sd),         /* 4: SCSI disk */
-       bdev_tape_init(NST,st),         /* 5: SCSI tape */
+       bdev_notdef(),                  /* 5: was: SCSI tape */
        bdev_disk_init(NCD,cd),         /* 6: SCSI CD-ROM */
        bdev_notdef(),                  /* 7 */
        bdev_notdef(),                  /* 8 */
@@ -347,7 +347,7 @@ int chrtoblktbl[] = {
        /* 11 */        NODEV,
        /* 12 */        NODEV,
        /* 13 */        4,              /* sd */
-       /* 14 */        5,              /* st */
+       /* 14 */        NODEV,
        /* 15 */        6,              /* cd */
        /* 16 */        NODEV,
        /* 17 */        NODEV,
Index: arch/landisk/landisk/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/landisk/landisk/conf.c,v
retrieving revision 1.36
diff -u -p -r1.36 conf.c
--- arch/landisk/landisk/conf.c 2 Sep 2016 17:06:12 -0000       1.36
+++ arch/landisk/landisk/conf.c 4 Sep 2016 09:47:52 -0000
@@ -160,7 +160,7 @@ struct bdevsw bdevsw[] = {
        bdev_notdef(),                  /* 22: */
        bdev_notdef(),                  /* 23: */
        bdev_disk_init(NSD,sd),         /* 24: SCSI disk */
-       bdev_tape_init(NST,st),         /* 25: SCSI tape */
+       bdev_notdef(),                  /* 25: was: SCSI tape */
        bdev_disk_init(NCD,cd),         /* 26: SCSI cdrom */
        bdev_notdef(),                  /* 27: */
        bdev_notdef(),                  /* 28: */
@@ -424,7 +424,7 @@ int chrtoblktbl[] = {
     /* 22 */        NODEV,
     /* 23 */        NODEV,
     /* 24 */        24,                        /* sd */
-    /* 25 */        25,                        /* st */
+    /* 25 */        NODEV,
     /* 26 */        26,                        /* cd */
 };
 int nchrtoblktbl = nitems(chrtoblktbl);
Index: arch/loongson/loongson/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/loongson/loongson/conf.c,v
retrieving revision 1.22
diff -u -p -r1.22 conf.c
--- arch/loongson/loongson/conf.c       2 Sep 2016 17:06:12 -0000       1.22
+++ arch/loongson/loongson/conf.c       4 Sep 2016 09:47:52 -0000
@@ -71,7 +71,7 @@ struct bdevsw bdevsw[] =
        bdev_notdef(),                  /* 7:  */
        bdev_disk_init(NRD,rd),         /* 8: RAM disk (for install) */
        bdev_notdef(),                  /* 9:  */
-       bdev_tape_init(NST,st),         /* 10: SCSI tape */
+       bdev_notdef(),                  /* 10: was: SCSI tape */
        bdev_notdef(),                  /* 11:  */
        bdev_notdef(),                  /* 12:  */
        bdev_notdef(),                  /* 13:  */
@@ -268,7 +268,7 @@ int chrtoblktbl[] =  {
        /* 7 */         NODEV,
        /* 8 */         3,              /* cd */
        /* 9 */         0,              /* sd */
-       /* 10 */        10,             /* st */
+       /* 10 */        NODEV,
        /* 11 */        2,              /* vnd */
        /* 12 */        NODEV,
        /* 13 */        NODEV,
Index: arch/luna88k/luna88k/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/luna88k/luna88k/conf.c,v
retrieving revision 1.29
diff -u -p -r1.29 conf.c
--- arch/luna88k/luna88k/conf.c 2 Sep 2016 17:06:12 -0000       1.29
+++ arch/luna88k/luna88k/conf.c 4 Sep 2016 09:47:52 -0000
@@ -79,7 +79,7 @@ struct bdevsw bdevsw[] =
        bdev_notdef(),                  /* 2 */
        bdev_swap_init(1,sw),           /* 3: swap pseudo-device */
        bdev_disk_init(NSD,sd),         /* 4: SCSI disk */
-       bdev_tape_init(NST,st),         /* 5: SCSI tape */
+       bdev_notdef(),                  /* 5: was: SCSI tape */
        bdev_disk_init(NCD,cd),         /* 6: SCSI CD-ROM */
        bdev_disk_init(NRD,rd),         /* 7: ramdisk */
        bdev_disk_init(NVND,vnd),       /* 8: vnode disk driver */
@@ -224,6 +224,5 @@ int chrtoblktbl[] = {
        /* 17 */        NODEV,
        /* 18 */        7,      /* rd */
        /* 19 */        8,      /* vnd */
-       /* 20 */        5,      /* st */
 };
 int nchrtoblktbl = nitems(chrtoblktbl);
Index: arch/macppc/macppc/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/macppc/macppc/conf.c,v
retrieving revision 1.66
diff -u -p -r1.66 conf.c
--- arch/macppc/macppc/conf.c   2 Sep 2016 17:06:12 -0000       1.66
+++ arch/macppc/macppc/conf.c   4 Sep 2016 09:47:52 -0000
@@ -58,7 +58,7 @@ struct bdevsw bdevsw[] = {
        bdev_disk_init(NSD,sd),         /* 2 SCSI Disk */
        bdev_disk_init(NCD,cd),         /* 3 SCSI CD-ROM */
        bdev_notdef(),                  /* 4 unknown*/
-       bdev_tape_init(NST,st),         /* 5 SCSI tape */
+       bdev_notdef(),                  /* 5 was: SCSI tape */
        bdev_notdef(),                  /* 6 unknown*/
        bdev_notdef(),                  /* 7 unknown*/
        bdev_notdef(),                  /* 8 */
@@ -283,7 +283,6 @@ int chrtoblktbl[] = {
        /* 17 */        17,             /* rd */
        /* 18 */        NODEV,
        /* 19 */        14,             /* vnd */
-       /* 20 */        5,              /* st */
 };
 int nchrtoblktbl = nitems(chrtoblktbl);
 
Index: arch/octeon/octeon/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/octeon/octeon/conf.c,v
retrieving revision 1.19
diff -u -p -r1.19 conf.c
--- arch/octeon/octeon/conf.c   2 Sep 2016 17:06:12 -0000       1.19
+++ arch/octeon/octeon/conf.c   4 Sep 2016 09:47:52 -0000
@@ -77,7 +77,7 @@ struct bdevsw bdevsw[] =
        bdev_notdef(),                  /* 7:  */
        bdev_disk_init(NRD,rd),         /* 8: RAM disk (for install) */
        bdev_notdef(),                  /* 9:  */
-       bdev_tape_init(NST,st),         /* 10: SCSI tape */
+       bdev_notdef(),                  /* 10: was: SCSI tape */
        bdev_notdef(),                  /* 11:  */
        bdev_notdef(),                  /* 12:  */
        bdev_notdef(),                  /* 13:  */
@@ -288,7 +288,7 @@ int chrtoblktbl[] =  {
        /* 7 */         NODEV,
        /* 8 */         3,              /* cd */
        /* 9 */         0,              /* sd */
-       /* 10 */        10,             /* st */
+       /* 10 */        NODEV,
        /* 11 */        2,              /* vnd */
        /* 12 */        NODEV,
        /* 13 */        NODEV,
Index: arch/sgi/sgi/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/sgi/sgi/conf.c,v
retrieving revision 1.38
diff -u -p -r1.38 conf.c
--- arch/sgi/sgi/conf.c 2 Sep 2016 17:06:13 -0000       1.38
+++ arch/sgi/sgi/conf.c 4 Sep 2016 09:47:52 -0000
@@ -71,7 +71,7 @@ struct bdevsw bdevsw[] =
        bdev_notdef(),                  /* 7:  */
        bdev_disk_init(NRD,rd),         /* 8: RAM disk (for install) */
        bdev_notdef(),                  /* 9:  */
-       bdev_tape_init(NST,st),         /* 10: SCSI tape */
+       bdev_notdef(),                  /* 10: was: SCSI tape */
        bdev_notdef(),                  /* 11:  */
        bdev_notdef(),                  /* 12:  */
        bdev_notdef(),                  /* 13:  */
@@ -269,7 +269,7 @@ int chrtoblktbl[] =  {
        /* 7 */         NODEV,
        /* 8 */         3,              /* cd */
        /* 9 */         0,              /* sd */
-       /* 10 */        10,             /* st */
+       /* 10 */        NODEV,
        /* 11 */        2,              /* vnd */
        /* 12 */        NODEV,
        /* 13 */        NODEV,
Index: arch/socppc/socppc/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/socppc/socppc/conf.c,v
retrieving revision 1.27
diff -u -p -r1.27 conf.c
--- arch/socppc/socppc/conf.c   2 Sep 2016 17:06:13 -0000       1.27
+++ arch/socppc/socppc/conf.c   4 Sep 2016 09:47:52 -0000
@@ -56,7 +56,7 @@ struct bdevsw bdevsw[] = {
        bdev_disk_init(NSD,sd),         /* 2 SCSI Disk */
        bdev_disk_init(NCD,cd),         /* 3 SCSI CD-ROM */
        bdev_notdef(),                  /* 4 unknown*/
-       bdev_tape_init(NST,st),         /* 5 SCSI tape */
+       bdev_notdef(),                  /* 5 was: SCSI tape */
        bdev_notdef(),                  /* 6 unknown*/
        bdev_notdef(),                  /* 7 unknown*/
        bdev_notdef(),                  /* 8 */
@@ -261,7 +261,6 @@ int chrtoblktbl[] = {
        /* 17 */        17,             /* rd */
        /* 18 */        NODEV,
        /* 19 */        14,             /* vnd */
-       /* 20 */        5,              /* st */
 };
 int nchrtoblktbl = nitems(chrtoblktbl);
 
Index: arch/sparc64/sparc64/conf.c
===================================================================
RCS file: /cvs/src/sys/arch/sparc64/sparc64/conf.c,v
retrieving revision 1.78
diff -u -p -r1.78 conf.c
--- arch/sparc64/sparc64/conf.c 2 Sep 2016 17:06:13 -0000       1.78
+++ arch/sparc64/sparc64/conf.c 4 Sep 2016 09:47:52 -0000
@@ -130,7 +130,7 @@ struct bdevsw       bdevsw[] =
        bdev_disk_init(NVND,vnd),       /* 8: vnode disk driver */
        bdev_notdef(),                  /* 9: was: concatenated disk driver */
        bdev_notdef(),                  /* 10: SMD disk -- not this arch */
-       bdev_tape_init(NST,st),         /* 11: SCSI tape */
+       bdev_notdef(),                  /* 11: was: SCSI tape */
        bdev_disk_init(NWD,wd),         /* 12: IDE disk */
        bdev_notdef(),                  /* 13 */
        bdev_notdef(),                  /* 14 */
@@ -354,7 +354,7 @@ int chrtoblktbl[] = {
        /* 15 */        NODEV,
        /* 16 */        NODEV,
        /* 17 */        7,
-       /* 18 */        11,
+       /* 18 */        NODEV,
        /* 19 */        NODEV,
        /* 20 */        NODEV,
        /* 21 */        NODEV,
Index: kern/vfs_bio.c
===================================================================
RCS file: /cvs/src/sys/kern/vfs_bio.c,v
retrieving revision 1.175
diff -u -p -r1.175 vfs_bio.c
--- kern/vfs_bio.c      7 Jun 2016 01:31:54 -0000       1.175
+++ kern/vfs_bio.c      4 Sep 2016 09:47:53 -0000
@@ -669,14 +669,7 @@ bdwrite(struct buf *bp)
                curproc->p_ru.ru_oublock++;             /* XXX */
        }
 
-       /* If this is a tape block, write the block now. */
-       if (major(bp->b_dev) < nblkdev &&
-           bdevsw[major(bp->b_dev)].d_type == D_TAPE) {
-               bawrite(bp);
-               return;
-       }
-
-       /* Otherwise, the "write" is done, so mark and release the buffer. */
+       /* The "write" is done, so mark and release the buffer. */
        CLR(bp->b_flags, B_NEEDCOMMIT);
        SET(bp->b_flags, B_DONE);
        brelse(bp);
Index: scsi/st.c
===================================================================
RCS file: /cvs/src/sys/scsi/st.c,v
retrieving revision 1.131
diff -u -p -r1.131 st.c
--- scsi/st.c   12 Mar 2016 15:16:04 -0000      1.131
+++ scsi/st.c   4 Sep 2016 09:47:53 -0000
@@ -369,16 +369,13 @@ int
 stdetach(struct device *self, int flags)
 {
        struct st_softc *st = (struct st_softc *)self;
-       int bmaj, cmaj, mn;
+       int cmaj, mn;
 
        bufq_drain(&st->sc_bufq);
 
        /* Locate the lowest minor number to be detached. */
        mn = STMINOR(self->dv_unit, 0);
 
-       for (bmaj = 0; bmaj < nblkdev; bmaj++)
-               if (bdevsw[bmaj].d_open == stopen)
-                       vdevgone(bmaj, mn, mn + MAXSTMODES - 1, VBLK);
        for (cmaj = 0; cmaj < nchrdev; cmaj++)
                if (cdevsw[cmaj].d_open == stopen)
                        vdevgone(cmaj, mn, mn + MAXSTMODES - 1, VCHR);
@@ -2176,12 +2173,4 @@ st_touch_tape(struct st_softc *st)
 done:
        dma_free(buf, maxblksize);
        return (error);
-}
-
-int
-stdump(dev_t dev, daddr_t blkno, caddr_t va, size_t size)
-{
-
-       /* Not implemented. */
-       return ENXIO;
 }
Index: sys/conf.h
===================================================================
RCS file: /cvs/src/sys/sys/conf.h,v
retrieving revision 1.142
diff -u -p -r1.142 conf.h
--- sys/conf.h  2 Sep 2016 17:06:13 -0000       1.142
+++ sys/conf.h  4 Sep 2016 09:47:53 -0000
@@ -55,9 +55,8 @@ struct knote;
 /*
  * Types for d_type
  */
-#define        D_TAPE  1
-#define        D_DISK  2
-#define        D_TTY   3
+#define        D_DISK  1
+#define        D_TTY   2
 
 /*
  * Flags for d_flags
@@ -116,11 +115,6 @@ extern struct bdevsw bdevsw[];
        dev_init(c,n,strategy), dev_init(c,n,ioctl), \
        dev_init(c,n,dump), dev_size_init(c,n), D_DISK }
 
-#define        bdev_tape_init(c,n) { \
-       dev_init(c,n,open), dev_init(c,n,close), \
-       dev_init(c,n,strategy), dev_init(c,n,ioctl), \
-       dev_init(c,n,dump), 0, D_TAPE }
-
 #define        bdev_swap_init(c,n) { \
        (dev_type_open((*))) enodev, (dev_type_close((*))) enodev, \
        dev_init(c,n,strategy), (dev_type_ioctl((*))) enodev, \
@@ -186,7 +180,7 @@ extern struct cdevsw cdevsw[];
        dev_init(c,n,open), dev_init(c,n,close), dev_init(c,n,read), \
        dev_init(c,n,write), dev_init(c,n,ioctl), (dev_type_stop((*))) enodev, \
        0, seltrue, (dev_type_mmap((*))) enodev, \
-       D_TAPE, 0, seltrue_kqfilter }
+       0, 0, seltrue_kqfilter }
 
 /* open, close, read, write, ioctl, stop, tty */
 #define        cdev_tty_init(c,n) { \
@@ -563,7 +557,6 @@ cdev_decl(sd);
 
 cdev_decl(ses);
 
-bdev_decl(st);
 cdev_decl(st);
 
 bdev_decl(cd);
-- 
Christian "naddy" Weisgerber                          [email protected]

Reply via email to