Skip to content

Commit

Permalink
block: fix comment and add lockdep assert
Browse files Browse the repository at this point in the history
After commit b89f625 ("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>
  • Loading branch information
Yufen Yu authored and axboe committed Oct 9, 2020
1 parent 0841031 commit f0c6ae0
Showing 1 changed file with 4 additions and 10 deletions.
14 changes: 4 additions & 10 deletions block/elevator.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;

Expand Down

0 comments on commit f0c6ae0

Please sign in to comment.