diff options
author | Bart Van Assche <bart.vanassche@wdc.com> | 2018-01-17 14:48:09 -0500 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2018-01-18 14:54:42 -0500 |
commit | 14a23498ba97683c6790b1bcd8b2cdfe9ad99797 (patch) | |
tree | 2fd6541a0cb24db6f70ca2ee5ae54675531b273a | |
parent | 83d016ac86428dbca8a62d3e4fdc29e3ea39e535 (diff) |
block: Document scheduler modification locking requirements
This patch does not change any functionality.
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r-- | block/elevator.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/block/elevator.c b/block/elevator.c index 4f00b53cd5fd..e87e9b43aba0 100644 --- a/block/elevator.c +++ b/block/elevator.c | |||
@@ -869,6 +869,8 @@ int elv_register_queue(struct request_queue *q) | |||
869 | struct elevator_queue *e = q->elevator; | 869 | struct elevator_queue *e = q->elevator; |
870 | int error; | 870 | int error; |
871 | 871 | ||
872 | lockdep_assert_held(&q->sysfs_lock); | ||
873 | |||
872 | error = kobject_add(&e->kobj, &q->kobj, "%s", "iosched"); | 874 | error = kobject_add(&e->kobj, &q->kobj, "%s", "iosched"); |
873 | if (!error) { | 875 | if (!error) { |
874 | struct elv_fs_entry *attr = e->type->elevator_attrs; | 876 | struct elv_fs_entry *attr = e->type->elevator_attrs; |
@@ -889,6 +891,8 @@ int elv_register_queue(struct request_queue *q) | |||
889 | 891 | ||
890 | void elv_unregister_queue(struct request_queue *q) | 892 | void elv_unregister_queue(struct request_queue *q) |
891 | { | 893 | { |
894 | lockdep_assert_held(&q->sysfs_lock); | ||
895 | |||
892 | if (q) { | 896 | if (q) { |
893 | struct elevator_queue *e = q->elevator; | 897 | struct elevator_queue *e = q->elevator; |
894 | 898 | ||
@@ -965,6 +969,8 @@ static int elevator_switch_mq(struct request_queue *q, | |||
965 | { | 969 | { |
966 | int ret; | 970 | int ret; |
967 | 971 | ||
972 | lockdep_assert_held(&q->sysfs_lock); | ||
973 | |||
968 | blk_mq_freeze_queue(q); | 974 | blk_mq_freeze_queue(q); |
969 | blk_mq_quiesce_queue(q); | 975 | blk_mq_quiesce_queue(q); |
970 | 976 | ||
@@ -1010,6 +1016,8 @@ static int elevator_switch(struct request_queue *q, struct elevator_type *new_e) | |||
1010 | bool old_registered = false; | 1016 | bool old_registered = false; |
1011 | int err; | 1017 | int err; |
1012 | 1018 | ||
1019 | lockdep_assert_held(&q->sysfs_lock); | ||
1020 | |||
1013 | if (q->mq_ops) | 1021 | if (q->mq_ops) |
1014 | return elevator_switch_mq(q, new_e); | 1022 | return elevator_switch_mq(q, new_e); |
1015 | 1023 | ||