diff options
author | Yufen Yu <yuyufen@huawei.com> | 2020-10-08 23:26:31 -0400 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2020-10-09 12:34:06 -0600 |
commit | f0c6ae09db1d39cbcf35776f889e0f7f861493d2 (patch) | |
tree | 36de953172a925635b319c381650ba66a77c75a5 /block | |
parent | 0841031ab9a8fb2551880c24a8419997b8e834bc (diff) | |
download | lwn-f0c6ae09db1d39cbcf35776f889e0f7f861493d2.tar.gz lwn-f0c6ae09db1d39cbcf35776f889e0f7f861493d2.zip |
block: fix comment and add lockdep assert
After commit b89f625e28d4 ("block: don't release queue's sysfs
lock during switching elevator"), whole elevator register and
unregister function are covered by sysfs_lock. So, remove wrong
comment and add lockdep assert.
Signed-off-by: Yufen Yu <yuyufen@huawei.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block')
-rw-r--r-- | block/elevator.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/block/elevator.c b/block/elevator.c index 431a2a1c896e..293c5c81397a 100644 --- a/block/elevator.c +++ b/block/elevator.c @@ -479,16 +479,13 @@ static struct kobj_type elv_ktype = { .release = elevator_release, }; -/* - * elv_register_queue is called from either blk_register_queue or - * elevator_switch, elevator switch is prevented from being happen - * in the two paths, so it is safe to not hold q->sysfs_lock. - */ int elv_register_queue(struct request_queue *q, bool uevent) { struct elevator_queue *e = q->elevator; int error; + lockdep_assert_held(&q->sysfs_lock); + error = kobject_add(&e->kobj, &q->kobj, "%s", "iosched"); if (!error) { struct elv_fs_entry *attr = e->type->elevator_attrs; @@ -507,13 +504,10 @@ int elv_register_queue(struct request_queue *q, bool uevent) return error; } -/* - * elv_unregister_queue is called from either blk_unregister_queue or - * elevator_switch, elevator switch is prevented from being happen - * in the two paths, so it is safe to not hold q->sysfs_lock. - */ void elv_unregister_queue(struct request_queue *q) { + lockdep_assert_held(&q->sysfs_lock); + if (q) { struct elevator_queue *e = q->elevator; |