Skip to content

Commit 4c46501

Browse files
htejunJens Axboe
authored andcommitted
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 <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
1 parent b7db995 commit 4c46501

File tree

4 files changed

+6
-29
lines changed

4 files changed

+6
-29
lines changed

block/cmd-filter.c

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -211,14 +211,10 @@ int blk_register_filter(struct gendisk *disk)
211211
{
212212
int ret;
213213
struct blk_cmd_filter *filter = &disk->queue->cmd_filter;
214-
struct kobject *parent = kobject_get(disk->holder_dir->parent);
215214

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,
220217
"%s", "cmd_filter");
221-
222218
if (ret < 0)
223219
return ret;
224220

@@ -231,7 +227,6 @@ void blk_unregister_filter(struct gendisk *disk)
231227
struct blk_cmd_filter *filter = &disk->queue->cmd_filter;
232228

233229
kobject_put(&filter->kobj);
234-
kobject_put(disk->holder_dir->parent);
235230
}
236231
EXPORT_SYMBOL(blk_unregister_filter);
237232
#endif

fs/block_dev.c

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -548,14 +548,6 @@ static struct kobject *bdev_get_kobj(struct block_device *bdev)
548548
return kobject_get(&disk_to_dev(bdev->bd_disk)->kobj);
549549
}
550550

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-
559551
static int add_symlink(struct kobject *from, struct kobject *to)
560552
{
561553
if (!from || !to)
@@ -608,7 +600,7 @@ static int bd_holder_grab_dirs(struct block_device *bdev,
608600
if (!bo->sdev)
609601
goto fail_put_hdev;
610602

611-
bo->hdir = bdev_get_holder(bdev);
603+
bo->hdir = kobject_get(bdev->bd_part->holder_dir);
612604
if (!bo->hdir)
613605
goto fail_put_sdev;
614606

fs/partitions/check.c

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -305,16 +305,6 @@ struct device_type part_type = {
305305
.release = part_release,
306306
};
307307

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-
318308
static void delete_partition_rcu_cb(struct rcu_head *head)
319309
{
320310
struct hd_struct *part = container_of(head, struct hd_struct, rcu_head);
@@ -464,7 +454,8 @@ void register_disk(struct gendisk *disk)
464454
return;
465455
}
466456
#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);
468459

469460
/* No minors to use for partitions */
470461
if (!disk_partitionable(disk))
@@ -592,7 +583,7 @@ void del_gendisk(struct gendisk *disk)
592583
disk_stat_set_all(disk, 0);
593584
disk->stamp = 0;
594585

595-
kobject_put(disk->holder_dir);
586+
kobject_put(disk->part0.holder_dir);
596587
kobject_put(disk->slave_dir);
597588
disk->driverfs_dev = NULL;
598589
#ifndef CONFIG_SYSFS_DEPRECATED

include/linux/genhd.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,6 @@ struct gendisk {
141141

142142
int flags;
143143
struct device *driverfs_dev; // FIXME: remove
144-
struct kobject *holder_dir;
145144
struct kobject *slave_dir;
146145

147146
struct timer_rand_state *random;

0 commit comments

Comments
 (0)