Loading block/genhd.c +6 −3 Original line number Diff line number Diff line Loading @@ -653,7 +653,7 @@ void genhd_media_change_notify(struct gendisk *disk) EXPORT_SYMBOL_GPL(genhd_media_change_notify); #endif /* 0 */ dev_t blk_lookup_devt(const char *name) dev_t blk_lookup_devt(const char *name, int part) { struct device *dev; dev_t devt = MKDEV(0, 0); Loading @@ -661,7 +661,11 @@ dev_t blk_lookup_devt(const char *name) mutex_lock(&block_class_lock); list_for_each_entry(dev, &block_class.devices, node) { if (strcmp(dev->bus_id, name) == 0) { devt = dev->devt; struct gendisk *disk = dev_to_disk(dev); if (part < disk->minors) devt = MKDEV(MAJOR(dev->devt), MINOR(dev->devt) + part); break; } } Loading @@ -669,7 +673,6 @@ dev_t blk_lookup_devt(const char *name) return devt; } EXPORT_SYMBOL(blk_lookup_devt); struct gendisk *alloc_disk(int minors) Loading drivers/base/class.c +0 −1 Original line number Diff line number Diff line Loading @@ -140,7 +140,6 @@ int class_register(struct class *cls) pr_debug("device class '%s': registering\n", cls->name); INIT_LIST_HEAD(&cls->children); INIT_LIST_HEAD(&cls->devices); INIT_LIST_HEAD(&cls->interfaces); kset_init(&cls->class_dirs); Loading include/linux/device.h +0 −1 Original line number Diff line number Diff line Loading @@ -183,7 +183,6 @@ struct class { struct module *owner; struct kset subsys; struct list_head children; struct list_head devices; struct list_head interfaces; struct kset class_dirs; Loading include/linux/genhd.h +2 −2 Original line number Diff line number Diff line Loading @@ -525,7 +525,7 @@ struct unixware_disklabel { #define ADDPART_FLAG_RAID 1 #define ADDPART_FLAG_WHOLEDISK 2 extern dev_t blk_lookup_devt(const char *name); extern dev_t blk_lookup_devt(const char *name, int part); extern char *disk_name (struct gendisk *hd, int part, char *buf); extern int rescan_partitions(struct gendisk *disk, struct block_device *bdev); Loading Loading @@ -553,7 +553,7 @@ static inline struct block_device *bdget_disk(struct gendisk *disk, int index) static inline void printk_all_partitions(void) { } static inline dev_t blk_lookup_devt(const char *name) static inline dev_t blk_lookup_devt(const char *name, int part) { dev_t devt = MKDEV(0, 0); return devt; Loading init/do_mounts.c +26 −1 Original line number Diff line number Diff line Loading @@ -76,6 +76,7 @@ dev_t name_to_dev_t(char *name) char s[32]; char *p; dev_t res = 0; int part; if (strncmp(name, "/dev/", 5) != 0) { unsigned maj, min; Loading Loading @@ -106,7 +107,31 @@ dev_t name_to_dev_t(char *name) for (p = s; *p; p++) if (*p == '/') *p = '!'; res = blk_lookup_devt(s); res = blk_lookup_devt(s, 0); if (res) goto done; /* * try non-existant, but valid partition, which may only exist * after revalidating the disk, like partitioned md devices */ while (p > s && isdigit(p[-1])) p--; if (p == s || !*p || *p == '0') goto fail; /* try disk name without <part number> */ part = simple_strtoul(p, NULL, 10); *p = '\0'; res = blk_lookup_devt(s, part); if (res) goto done; /* try disk name without p<part number> */ if (p < s + 2 || !isdigit(p[-2]) || p[-1] != 'p') goto fail; p[-1] = '\0'; res = blk_lookup_devt(s, part); if (res) goto done; Loading Loading
block/genhd.c +6 −3 Original line number Diff line number Diff line Loading @@ -653,7 +653,7 @@ void genhd_media_change_notify(struct gendisk *disk) EXPORT_SYMBOL_GPL(genhd_media_change_notify); #endif /* 0 */ dev_t blk_lookup_devt(const char *name) dev_t blk_lookup_devt(const char *name, int part) { struct device *dev; dev_t devt = MKDEV(0, 0); Loading @@ -661,7 +661,11 @@ dev_t blk_lookup_devt(const char *name) mutex_lock(&block_class_lock); list_for_each_entry(dev, &block_class.devices, node) { if (strcmp(dev->bus_id, name) == 0) { devt = dev->devt; struct gendisk *disk = dev_to_disk(dev); if (part < disk->minors) devt = MKDEV(MAJOR(dev->devt), MINOR(dev->devt) + part); break; } } Loading @@ -669,7 +673,6 @@ dev_t blk_lookup_devt(const char *name) return devt; } EXPORT_SYMBOL(blk_lookup_devt); struct gendisk *alloc_disk(int minors) Loading
drivers/base/class.c +0 −1 Original line number Diff line number Diff line Loading @@ -140,7 +140,6 @@ int class_register(struct class *cls) pr_debug("device class '%s': registering\n", cls->name); INIT_LIST_HEAD(&cls->children); INIT_LIST_HEAD(&cls->devices); INIT_LIST_HEAD(&cls->interfaces); kset_init(&cls->class_dirs); Loading
include/linux/device.h +0 −1 Original line number Diff line number Diff line Loading @@ -183,7 +183,6 @@ struct class { struct module *owner; struct kset subsys; struct list_head children; struct list_head devices; struct list_head interfaces; struct kset class_dirs; Loading
include/linux/genhd.h +2 −2 Original line number Diff line number Diff line Loading @@ -525,7 +525,7 @@ struct unixware_disklabel { #define ADDPART_FLAG_RAID 1 #define ADDPART_FLAG_WHOLEDISK 2 extern dev_t blk_lookup_devt(const char *name); extern dev_t blk_lookup_devt(const char *name, int part); extern char *disk_name (struct gendisk *hd, int part, char *buf); extern int rescan_partitions(struct gendisk *disk, struct block_device *bdev); Loading Loading @@ -553,7 +553,7 @@ static inline struct block_device *bdget_disk(struct gendisk *disk, int index) static inline void printk_all_partitions(void) { } static inline dev_t blk_lookup_devt(const char *name) static inline dev_t blk_lookup_devt(const char *name, int part) { dev_t devt = MKDEV(0, 0); return devt; Loading
init/do_mounts.c +26 −1 Original line number Diff line number Diff line Loading @@ -76,6 +76,7 @@ dev_t name_to_dev_t(char *name) char s[32]; char *p; dev_t res = 0; int part; if (strncmp(name, "/dev/", 5) != 0) { unsigned maj, min; Loading Loading @@ -106,7 +107,31 @@ dev_t name_to_dev_t(char *name) for (p = s; *p; p++) if (*p == '/') *p = '!'; res = blk_lookup_devt(s); res = blk_lookup_devt(s, 0); if (res) goto done; /* * try non-existant, but valid partition, which may only exist * after revalidating the disk, like partitioned md devices */ while (p > s && isdigit(p[-1])) p--; if (p == s || !*p || *p == '0') goto fail; /* try disk name without <part number> */ part = simple_strtoul(p, NULL, 10); *p = '\0'; res = blk_lookup_devt(s, part); if (res) goto done; /* try disk name without p<part number> */ if (p < s + 2 || !isdigit(p[-2]) || p[-1] != 'p') goto fail; p[-1] = '\0'; res = blk_lookup_devt(s, part); if (res) goto done; Loading