Commit 4c46501d1659475dc6c89554af6ce7fe6ecf615c

Authored by Tejun Heo
Committed by Jens Axboe
1 parent b7db9956e5

block: move holder_dir from disk to part0

Move disk->holder_dir to part0->holder_dir.  Kill now mostly
superflous bdev_get_holder().

While at it, kill superflous kobject_get/put() around holder_dir,
slave_dir and cmd_filter creation and collapse
disk_sysfs_add_subdirs() into register_disk().  These serve no purpose
but obfuscating the code.

Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>

Showing 4 changed files with 6 additions and 29 deletions Side-by-side Diff

... ... @@ -211,14 +211,10 @@
211 211 {
212 212 int ret;
213 213 struct blk_cmd_filter *filter = &disk->queue->cmd_filter;
214   - struct kobject *parent = kobject_get(disk->holder_dir->parent);
215 214  
216   - if (!parent)
217   - return -ENODEV;
218   -
219   - ret = kobject_init_and_add(&filter->kobj, &rcf_ktype, parent,
  215 + ret = kobject_init_and_add(&filter->kobj, &rcf_ktype,
  216 + &disk_to_dev(disk)->kobj,
220 217 "%s", "cmd_filter");
221   -
222 218 if (ret < 0)
223 219 return ret;
224 220  
... ... @@ -231,7 +227,6 @@
231 227 struct blk_cmd_filter *filter = &disk->queue->cmd_filter;
232 228  
233 229 kobject_put(&filter->kobj);
234   - kobject_put(disk->holder_dir->parent);
235 230 }
236 231 EXPORT_SYMBOL(blk_unregister_filter);
237 232 #endif
... ... @@ -548,14 +548,6 @@
548 548 return kobject_get(&disk_to_dev(bdev->bd_disk)->kobj);
549 549 }
550 550  
551   -static struct kobject *bdev_get_holder(struct block_device *bdev)
552   -{
553   - if (bdev->bd_contains != bdev)
554   - return kobject_get(bdev->bd_part->holder_dir);
555   - else
556   - return kobject_get(bdev->bd_disk->holder_dir);
557   -}
558   -
559 551 static int add_symlink(struct kobject *from, struct kobject *to)
560 552 {
561 553 if (!from || !to)
... ... @@ -608,7 +600,7 @@
608 600 if (!bo->sdev)
609 601 goto fail_put_hdev;
610 602  
611   - bo->hdir = bdev_get_holder(bdev);
  603 + bo->hdir = kobject_get(bdev->bd_part->holder_dir);
612 604 if (!bo->hdir)
613 605 goto fail_put_sdev;
614 606  
fs/partitions/check.c
... ... @@ -305,16 +305,6 @@
305 305 .release = part_release,
306 306 };
307 307  
308   -static inline void disk_sysfs_add_subdirs(struct gendisk *disk)
309   -{
310   - struct kobject *k;
311   -
312   - k = kobject_get(&disk_to_dev(disk)->kobj);
313   - disk->holder_dir = kobject_create_and_add("holders", k);
314   - disk->slave_dir = kobject_create_and_add("slaves", k);
315   - kobject_put(k);
316   -}
317   -
318 308 static void delete_partition_rcu_cb(struct rcu_head *head)
319 309 {
320 310 struct hd_struct *part = container_of(head, struct hd_struct, rcu_head);
... ... @@ -464,7 +454,8 @@
464 454 return;
465 455 }
466 456 #endif
467   - disk_sysfs_add_subdirs(disk);
  457 + disk->part0.holder_dir = kobject_create_and_add("holders", &ddev->kobj);
  458 + disk->slave_dir = kobject_create_and_add("slaves", &ddev->kobj);
468 459  
469 460 /* No minors to use for partitions */
470 461 if (!disk_partitionable(disk))
... ... @@ -592,7 +583,7 @@
592 583 disk_stat_set_all(disk, 0);
593 584 disk->stamp = 0;
594 585  
595   - kobject_put(disk->holder_dir);
  586 + kobject_put(disk->part0.holder_dir);
596 587 kobject_put(disk->slave_dir);
597 588 disk->driverfs_dev = NULL;
598 589 #ifndef CONFIG_SYSFS_DEPRECATED
include/linux/genhd.h
... ... @@ -141,7 +141,6 @@
141 141  
142 142 int flags;
143 143 struct device *driverfs_dev; // FIXME: remove
144   - struct kobject *holder_dir;
145 144 struct kobject *slave_dir;
146 145  
147 146 struct timer_rand_state *random;