[PATCH] large dev_t - second series (8/15)
[Posted September 10, 2003 by corbet]
| From: |
| Linux Kernel Mailing List <linux-kernel@vger.kernel.org> |
| To: |
| bk-commits-head@vger.kernel.org |
| Subject: |
| [PATCH] large dev_t - second series (8/15) |
| Date: |
| Fri, 05 Sep 2003 17:54:18 +0000 |
ChangeSet 1.1482, 2003/09/05 10:54:18-07:00, viro@www.linux.org.uk
[PATCH] large dev_t - second series (8/15)
kdev_t, to_kdev_t(), etc. are gone - there is no more objects
of that type and no remaining callers of these functions.
# This patch includes the following deltas:
# ChangeSet 1.1481 -> 1.1482
# drivers/scsi/sr.c 1.92 -> 1.93
# drivers/s390/char/tape_core.c 1.6 -> 1.7
# drivers/s390/char/tape_proc.c 1.2 -> 1.3
# drivers/scsi/sg.c 1.66 -> 1.67
# net/unix/af_unix.c 1.53 -> 1.54
# include/linux/kdev_t.h 1.12 -> 1.13
#
drivers/s390/char/tape_core.c | 2
drivers/s390/char/tape_proc.c | 2
drivers/scsi/sg.c | 2
drivers/scsi/sr.c | 2
include/linux/kdev_t.h | 93 ------------------------------------------
net/unix/af_unix.c | 2
6 files changed, 5 insertions(+), 98 deletions(-)
diff -Nru a/drivers/s390/char/tape_core.c b/drivers/s390/char/tape_core.c
--- a/drivers/s390/char/tape_core.c Fri Sep 5 13:16:18 2003
+++ b/drivers/s390/char/tape_core.c Fri Sep 5 13:16:18 2003
@@ -178,7 +178,7 @@
break;
minor += TAPE_MINORS_PER_DEV;
}
- if (minor >= (1 << KDEV_MINOR_BITS)) {
+ if (minor >= 256) {
write_unlock(&tape_device_lock);
return -ENODEV;
}
diff -Nru a/drivers/s390/char/tape_proc.c b/drivers/s390/char/tape_proc.c
--- a/drivers/s390/char/tape_proc.c Fri Sep 5 13:16:18 2003
+++ b/drivers/s390/char/tape_proc.c Fri Sep 5 13:16:18 2003
@@ -80,7 +80,7 @@
static void *tape_proc_start(struct seq_file *m, loff_t *pos)
{
- if (*pos >= (1 << KDEV_MINOR_BITS) / TAPE_MINORS_PER_DEV)
+ if (*pos >= 256 / TAPE_MINORS_PER_DEV)
return NULL;
return (void *)((unsigned long) *pos + 1);
}
diff -Nru a/drivers/scsi/sg.c b/drivers/scsi/sg.c
--- a/drivers/scsi/sg.c Fri Sep 5 13:16:18 2003
+++ b/drivers/scsi/sg.c Fri Sep 5 13:16:18 2003
@@ -83,7 +83,7 @@
#define SG_ALLOW_DIO_DEF 0
#define SG_ALLOW_DIO_CODE /* compile out by commenting this define */
-#define SG_MAX_DEVS_MASK ((1U << KDEV_MINOR_BITS) - 1)
+#define SG_MAX_DEVS_MASK (256 - 1)
/*
* Suppose you want to calculate the formula muldiv(x,m,d)=int(x * m / d)
diff -Nru a/drivers/scsi/sr.c b/drivers/scsi/sr.c
--- a/drivers/scsi/sr.c Fri Sep 5 13:16:18 2003
+++ b/drivers/scsi/sr.c Fri Sep 5 13:16:18 2003
@@ -59,7 +59,7 @@
MODULE_PARM(xa_test, "i"); /* see sr_ioctl.c */
-#define SR_DISKS (1 << KDEV_MINOR_BITS)
+#define SR_DISKS 256
#define MAX_RETRIES 3
#define SR_TIMEOUT (30 * HZ)
diff -Nru a/include/linux/kdev_t.h b/include/linux/kdev_t.h
--- a/include/linux/kdev_t.h Fri Sep 5 13:16:18 2003
+++ b/include/linux/kdev_t.h Fri Sep 5 13:16:18 2003
@@ -1,91 +1,6 @@
#ifndef _LINUX_KDEV_T_H
#define _LINUX_KDEV_T_H
#ifdef __KERNEL__
-/*
-As a preparation for the introduction of larger device numbers,
-we introduce a type kdev_t to hold them. No information about
-this type is known outside of this include file.
-
-Objects of type kdev_t designate a device. Outside of the kernel
-the corresponding things are objects of type dev_t - usually an
-integral type with the device major and minor in the high and low
-bits, respectively. Conversion is done by
-
-extern kdev_t to_kdev_t(int);
-
-It is up to the various file systems to decide how objects of type
-dev_t are stored on disk.
-The only other point of contact between kernel and outside world
-are the system calls stat and mknod, new versions of which will
-eventually have to be used in libc.
-
-[Unfortunately, the floppy control ioctls fail to hide the internal
-kernel structures, and the fd_device field of a struct floppy_drive_struct
-is user-visible. So, it remains a dev_t for the moment, with some ugly
-conversions in floppy.c.]
-
-Inside the kernel, we aim for a kdev_t type that is a pointer
-to a structure with information about the device (like major,
-minor, size, blocksize, sectorsize, name, read-only flag,
-struct file_operations etc.).
-
-However, for the time being we let kdev_t be almost the same as dev_t:
-
-typedef struct { unsigned short major, minor; } kdev_t;
-
-Admissible operations on an object of type kdev_t:
-- passing it along
-- comparing it for equality with another such object
-- storing it in inode->i_rdev or tty->device
-- using its bit pattern as argument in a hash function
-- finding its major and minor
-- complaining about it
-
-An object of type kdev_t is created only by the function MKDEV(),
-with the single exception of the constant 0 (no device).
-
-Right now the other information mentioned above is usually found
-in static arrays indexed by major or major,minor.
-
-An obstacle to immediately using
- typedef struct { ... (* lots of information *) } *kdev_t
-is the case of mknod used to create a block device that the
-kernel doesn't know about at present (but first learns about
-when some module is inserted).
-
-aeb - 950811
-*/
-
-
-/*
- * NOTE NOTE NOTE!
- *
- * The kernel-internal "kdev_t" will eventually have
- * 20 bits for minor numbers, and 12 bits for majors.
- *
- * HOWEVER, the external representation is still 8+8
- * bits, and there is no way to generate the extended
- * "kdev_t" format yet. Which is just as well, since
- * we still use "minor" as an index into various
- * static arrays, and they are sized for a 8-bit index.
- */
-typedef struct {
- unsigned short value;
-} kdev_t;
-
-#define KDEV_MINOR_BITS 8
-#define KDEV_MAJOR_BITS 8
-
-#define __mkdev(major,minor) (((major) << KDEV_MINOR_BITS) + (minor))
-
-#define mk_kdev(major, minor) ((kdev_t) { __mkdev(major,minor) } )
-
-#define NODEV (mk_kdev(0,0))
-
-/* Mask off the high bits for now.. */
-#define minor(dev) ((dev).value & 0xff)
-#define major(dev) (((dev).value >> KDEV_MINOR_BITS) & 0xff)
-
/* These are for user-level "dev_t" */
#define MINORBITS 8
#define MINORMASK ((1U << MINORBITS) - 1)
@@ -93,20 +8,6 @@
#define MAJOR(dev) ((unsigned int) ((dev) >> MINORBITS))
#define MINOR(dev) ((unsigned int) ((dev) & MINORMASK))
#define MKDEV(ma,mi) (((ma) << MINORBITS) | (mi))
-
-/*
- * Conversion functions
- */
-
-static inline int kdev_t_to_nr(kdev_t dev)
-{
- return MKDEV(major(dev), minor(dev));
-}
-
-static inline kdev_t to_kdev_t(int dev)
-{
- return mk_kdev(MAJOR(dev),MINOR(dev));
-}
#define print_dev_t(buffer, dev) \
sprintf((buffer), "%u:%u\n", MAJOR(dev), MINOR(dev))
diff -Nru a/net/unix/af_unix.c b/net/unix/af_unix.c
--- a/net/unix/af_unix.c Fri Sep 5 13:16:18 2003
+++ b/net/unix/af_unix.c Fri Sep 5 13:16:18 2003
@@ -57,7 +57,7 @@
* [TO FIX]
* ECONNREFUSED is not returned from one end of a connected() socket to the
* other the moment one end closes.
- * fstat() doesn't return st_dev=NODEV, and give the blksize as high water mark
+ * fstat() doesn't return st_dev=0, and give the blksize as high water mark
* and a fake inode identifier (nor the BSD first socket fstat twice bug).
* [NOT TO FIX]
* accept() returns a path name even if the connecting socket has closed
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
(
Log in to post comments)