[PATCH] devfs: Remove devfs from the partition code
Greg Kroah-Hartman [Tue, 21 Jun 2005 04:15:16 +0000 (21:15 -0700)]
This patch removes the devfs code from the fs/partitions/ directory.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

fs/partitions/Makefile
fs/partitions/check.c
fs/partitions/devfs.c [deleted file]
fs/partitions/devfs.h [deleted file]

index 42c7d38..d713ce6 100644 (file)
@@ -4,7 +4,6 @@
 
 obj-y := check.o
 
-obj-$(CONFIG_DEVFS_FS) += devfs.o
 obj-$(CONFIG_ACORN_PARTITION) += acorn.o
 obj-$(CONFIG_AMIGA_PARTITION) += amiga.o
 obj-$(CONFIG_ATARI_PARTITION) += atari.o
index 2ef313a..2ab7701 100644 (file)
@@ -21,7 +21,6 @@
 #include <linux/devfs_fs_kernel.h>
 
 #include "check.h"
-#include "devfs.h"
 
 #include "acorn.h"
 #include "amiga.h"
@@ -161,18 +160,11 @@ check_partition(struct gendisk *hd, struct block_device *bdev)
        if (!state)
                return NULL;
 
-#ifdef CONFIG_DEVFS_FS
-       if (hd->devfs_name[0] != '\0') {
-               printk(KERN_INFO " /dev/%s:", hd->devfs_name);
+       disk_name(hd, 0, state->name);
+       printk(KERN_INFO " %s:", state->name);
+       if (isdigit(state->name[strlen(state->name)-1]))
                sprintf(state->name, "p");
-       }
-#endif
-       else {
-               disk_name(hd, 0, state->name);
-               printk(KERN_INFO " %s:", state->name);
-               if (isdigit(state->name[strlen(state->name)-1]))
-                       sprintf(state->name, "p");
-       }
+
        state->limit = hd->minors;
        i = res = 0;
        while (!res && check_part[i]) {
@@ -423,14 +415,8 @@ void register_disk(struct gendisk *disk)
        disk_sysfs_add_subdirs(disk);
 
        /* No minors to use for partitions */
-       if (disk->minors == 1) {
-               if (disk->devfs_name[0] != '\0')
-                       devfs_add_disk(disk);
+       if (disk->minors == 1)
                goto exit;
-       }
-
-       /* always add handle for the whole disk */
-       devfs_add_partitioned(disk);
 
        /* No such device (e.g., media were just removed) */
        if (!get_capacity(disk))
@@ -538,8 +524,6 @@ void del_gendisk(struct gendisk *disk)
        disk_stat_set_all(disk, 0);
        disk->stamp = 0;
 
-       devfs_remove_disk(disk);
-
        kobject_uevent(&disk->kobj, KOBJ_REMOVE);
        if (disk->holder_dir)
                kobject_unregister(disk->holder_dir);
diff --git a/fs/partitions/devfs.c b/fs/partitions/devfs.c
deleted file mode 100644 (file)
index 3f0a780..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * This tries to keep block devices away from devfs as much as possible.
- */
-#include <linux/fs.h>
-#include <linux/devfs_fs_kernel.h>
-#include <linux/vmalloc.h>
-#include <linux/genhd.h>
-#include <linux/bitops.h>
-#include <linux/mutex.h>
-
-
-struct unique_numspace {
-       u32               num_free;          /*  Num free in bits       */
-       u32               length;            /*  Array length in bytes  */
-       unsigned long     *bits;
-       struct semaphore  mutex;
-};
-
-static DEFINE_MUTEX(numspace_mutex);
-
-static int expand_numspace(struct unique_numspace *s)
-{
-       u32 length;
-       void *bits;
-
-       if (s->length < 16)
-               length = 16;
-       else
-               length = s->length << 1;
-
-       bits = vmalloc(length);
-       if (!bits)
-               return -ENOMEM;
-       if (s->bits) {
-               memcpy(bits, s->bits, s->length);
-               vfree(s->bits);
-       }
-               
-       s->num_free = (length - s->length) << 3;
-       s->bits = bits;
-       memset(bits + s->length, 0, length - s->length);
-       s->length = length;
-
-       return 0;
-}
-
-static int alloc_unique_number(struct unique_numspace *s)
-{
-       int rval = 0;
-
-       mutex_lock(&numspace_mutex);
-       if (s->num_free < 1)
-               rval = expand_numspace(s);
-       if (!rval) {
-               rval = find_first_zero_bit(s->bits, s->length << 3);
-               --s->num_free;
-               __set_bit(rval, s->bits);
-       }
-       mutex_unlock(&numspace_mutex);
-
-       return rval;
-}
-
-static void dealloc_unique_number(struct unique_numspace *s, int number)
-{
-       int old_val;
-
-       if (number >= 0) {
-               mutex_lock(&numspace_mutex);
-               old_val = __test_and_clear_bit(number, s->bits);
-               if (old_val)
-                       ++s->num_free;
-               mutex_unlock(&numspace_mutex);
-       }
-}
-
-static struct unique_numspace disc_numspace;
-static struct unique_numspace cdrom_numspace;
-
-void devfs_add_partitioned(struct gendisk *disk)
-{
-       char dirname[64], symlink[16];
-
-       devfs_mk_dir(disk->devfs_name);
-       devfs_mk_bdev(MKDEV(disk->major, disk->first_minor),
-                       S_IFBLK|S_IRUSR|S_IWUSR,
-                       "%s/disc", disk->devfs_name);
-
-       disk->number = alloc_unique_number(&disc_numspace);
-
-       sprintf(symlink, "discs/disc%d", disk->number);
-       sprintf(dirname, "../%s", disk->devfs_name);
-       devfs_mk_symlink(symlink, dirname);
-
-}
-
-void devfs_add_disk(struct gendisk *disk)
-{
-       devfs_mk_bdev(MKDEV(disk->major, disk->first_minor),
-                       (disk->flags & GENHD_FL_CD) ?
-                               S_IFBLK|S_IRUGO|S_IWUGO :
-                               S_IFBLK|S_IRUSR|S_IWUSR,
-                       "%s", disk->devfs_name);
-
-       if (disk->flags & GENHD_FL_CD) {
-               char dirname[64], symlink[16];
-
-               disk->number = alloc_unique_number(&cdrom_numspace);
-
-               sprintf(symlink, "cdroms/cdrom%d", disk->number);
-               sprintf(dirname, "../%s", disk->devfs_name);
-               devfs_mk_symlink(symlink, dirname);
-       }
-}
-
-void devfs_remove_disk(struct gendisk *disk)
-{
-       if (disk->minors != 1) {
-               devfs_remove("discs/disc%d", disk->number);
-               dealloc_unique_number(&disc_numspace, disk->number);
-               devfs_remove("%s/disc", disk->devfs_name);
-       }
-       if (disk->flags & GENHD_FL_CD) {
-               devfs_remove("cdroms/cdrom%d", disk->number);
-               dealloc_unique_number(&cdrom_numspace, disk->number);
-       }
-       devfs_remove(disk->devfs_name);
-}
-
-
diff --git a/fs/partitions/devfs.h b/fs/partitions/devfs.h
deleted file mode 100644 (file)
index 176118b..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-
-#ifdef CONFIG_DEVFS_FS
-void devfs_add_disk(struct gendisk *dev);
-void devfs_add_partitioned(struct gendisk *dev);
-void devfs_remove_disk(struct gendisk *dev);
-#else
-# define devfs_add_disk(disk)                  do { } while (0)
-# define devfs_add_partitioned(disk)           do { } while (0)
-# define devfs_remove_disk(disk)               do { } while (0)
-#endif