summaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorYufen Yu <yuyufen@huawei.com>2020-10-08 23:26:31 -0400
committerJens Axboe <axboe@kernel.dk>2020-10-09 12:34:06 -0600
commitf0c6ae09db1d39cbcf35776f889e0f7f861493d2 (patch)
tree36de953172a925635b319c381650ba66a77c75a5 /block
parent0841031ab9a8fb2551880c24a8419997b8e834bc (diff)
downloadlwn-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.c14
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;