diff options
Diffstat (limited to 'fs/partitions/check.c')
-rw-r--r-- | fs/partitions/check.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/fs/partitions/check.c b/fs/partitions/check.c index 6d5b213b8a9b..6d720243f5f4 100644 --- a/fs/partitions/check.c +++ b/fs/partitions/check.c | |||
@@ -334,6 +334,7 @@ void delete_partition(struct gendisk *disk, int partno) | |||
334 | 334 | ||
335 | blk_free_devt(part_devt(part)); | 335 | blk_free_devt(part_devt(part)); |
336 | rcu_assign_pointer(ptbl->part[partno], NULL); | 336 | rcu_assign_pointer(ptbl->part[partno], NULL); |
337 | rcu_assign_pointer(ptbl->last_lookup, NULL); | ||
337 | kobject_put(part->holder_dir); | 338 | kobject_put(part->holder_dir); |
338 | device_del(part_to_dev(part)); | 339 | device_del(part_to_dev(part)); |
339 | 340 | ||
@@ -384,9 +385,9 @@ struct hd_struct *add_partition(struct gendisk *disk, int partno, | |||
384 | 385 | ||
385 | dname = dev_name(ddev); | 386 | dname = dev_name(ddev); |
386 | if (isdigit(dname[strlen(dname) - 1])) | 387 | if (isdigit(dname[strlen(dname) - 1])) |
387 | snprintf(pdev->bus_id, BUS_ID_SIZE, "%sp%d", dname, partno); | 388 | dev_set_name(pdev, "%sp%d", dname, partno); |
388 | else | 389 | else |
389 | snprintf(pdev->bus_id, BUS_ID_SIZE, "%s%d", dname, partno); | 390 | dev_set_name(pdev, "%s%d", dname, partno); |
390 | 391 | ||
391 | device_initialize(pdev); | 392 | device_initialize(pdev); |
392 | pdev->class = &block_class; | 393 | pdev->class = &block_class; |
@@ -447,16 +448,11 @@ void register_disk(struct gendisk *disk) | |||
447 | struct block_device *bdev; | 448 | struct block_device *bdev; |
448 | struct disk_part_iter piter; | 449 | struct disk_part_iter piter; |
449 | struct hd_struct *part; | 450 | struct hd_struct *part; |
450 | char *s; | ||
451 | int err; | 451 | int err; |
452 | 452 | ||
453 | ddev->parent = disk->driverfs_dev; | 453 | ddev->parent = disk->driverfs_dev; |
454 | 454 | ||
455 | strlcpy(ddev->bus_id, disk->disk_name, BUS_ID_SIZE); | 455 | dev_set_name(ddev, disk->disk_name); |
456 | /* ewww... some of these buggers have / in the name... */ | ||
457 | s = strchr(ddev->bus_id, '/'); | ||
458 | if (s) | ||
459 | *s = '!'; | ||
460 | 456 | ||
461 | /* delay uevents, until we scanned partition table */ | 457 | /* delay uevents, until we scanned partition table */ |
462 | ddev->uevent_suppress = 1; | 458 | ddev->uevent_suppress = 1; |