diff options
author | Christoph Hellwig <hch@lst.de> | 2022-11-14 05:26:34 +0100 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2022-11-30 19:09:00 +0100 |
commit | 6fc75f309d291d328b4ea2f91bef0ff56e4bc7c2 (patch) | |
tree | 981a8a3402307103bfe6f13e41f2254d8134845b /block/blk-sysfs.c | |
parent | blk-crypto: pass a gendisk to blk_crypto_sysfs_{,un}register (diff) | |
download | linux-6fc75f309d291d328b4ea2f91bef0ff56e4bc7c2.tar.xz linux-6fc75f309d291d328b4ea2f91bef0ff56e4bc7c2.zip |
block: factor out a blk_debugfs_remove helper
Split the debugfs removal from blk_unregister_queue into a helper so that
the it can be reused for blk_register_queue error handling.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20221114042637.1009333-3-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/blk-sysfs.c')
-rw-r--r-- | block/blk-sysfs.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c index bd223a3bef47..197646d479b4 100644 --- a/block/blk-sysfs.c +++ b/block/blk-sysfs.c @@ -800,6 +800,19 @@ struct kobj_type blk_queue_ktype = { .release = blk_release_queue, }; +static void blk_debugfs_remove(struct gendisk *disk) +{ + struct request_queue *q = disk->queue; + + mutex_lock(&q->debugfs_mutex); + blk_trace_shutdown(q); + debugfs_remove_recursive(q->debugfs_dir); + q->debugfs_dir = NULL; + q->sched_debugfs_dir = NULL; + q->rqos_debugfs_dir = NULL; + mutex_unlock(&q->debugfs_mutex); +} + /** * blk_register_queue - register a block layer queue with sysfs * @disk: Disk of which the request queue should be registered with sysfs. @@ -925,11 +938,5 @@ void blk_unregister_queue(struct gendisk *disk) kobject_del(&q->kobj); mutex_unlock(&q->sysfs_dir_lock); - mutex_lock(&q->debugfs_mutex); - blk_trace_shutdown(q); - debugfs_remove_recursive(q->debugfs_dir); - q->debugfs_dir = NULL; - q->sched_debugfs_dir = NULL; - q->rqos_debugfs_dir = NULL; - mutex_unlock(&q->debugfs_mutex); + blk_debugfs_remove(disk); } |