]> www.infradead.org Git - users/dwmw2/linux.git/commit
block: get rid of request queue ->sysfs_dir_lock
authorNilay Shroff <nilay@linux.ibm.com>
Tue, 28 Jan 2025 14:34:13 +0000 (20:04 +0530)
committerJens Axboe <axboe@kernel.dk>
Wed, 29 Jan 2025 14:16:47 +0000 (07:16 -0700)
commitfe6628608627424fb4a6d4c8d2235822457c5d9c
tree0bc1fca6addddcf0753974608cbad396e79ac629
parent5aa21b0495df1fac6d39f45011c1572bb431c44c
block: get rid of request queue ->sysfs_dir_lock

The request queue uses ->sysfs_dir_lock for protecting the addition/
deletion of kobject entries under sysfs while we register/unregister
blk-mq. However kobject addition/deletion is already protected with
kernfs/sysfs internal synchronization primitives. So use of q->sysfs_
dir_lock seems redundant.

Moreover, q->sysfs_dir_lock is also used at few other callsites along
with q->sysfs_lock for protecting the addition/deletion of kojects.
One such example is when we register with sysfs a set of independent
access ranges for a disk. Here as well we could get rid off q->sysfs_
dir_lock and only use q->sysfs_lock.

The only variable which q->sysfs_dir_lock appears to protect is q->
mq_sysfs_init_done which is set/unset while registering/unregistering
blk-mq with sysfs. But use of q->mq_sysfs_init_done could be easily
replaced using queue registered bit QUEUE_FLAG_REGISTERED.

So with this patch we remove q->sysfs_dir_lock from each callsite
and replace q->mq_sysfs_init_done using QUEUE_FLAG_REGISTERED.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Nilay Shroff <nilay@linux.ibm.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Link: https://lore.kernel.org/r/20250128143436.874357-2-nilay@linux.ibm.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-core.c
block/blk-ia-ranges.c
block/blk-mq-sysfs.c
block/blk-sysfs.c
include/linux/blkdev.h