It wasn't very clear that blkg_conf_prep() disables IRQ and that they are enabled in blkg_conf_finish() so this patch adds a comment about it. Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> --- I don't know if it's too late to fold this in with the previous patch? block/blk-iocost.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/block/blk-iocost.c b/block/blk-iocost.c index a7ed434eae03..c5a8703ca6aa 100644 --- a/block/blk-iocost.c +++ b/block/blk-iocost.c @@ -2095,6 +2095,7 @@ static ssize_t ioc_weight_write(struct kernfs_open_file *of, char *buf, return nbytes; } + /* blkg_conf_prep() takes the q->queue_lock and disables IRQs */ ret = blkg_conf_prep(blkcg, &blkcg_policy_iocost, buf, &ctx); if (ret) return ret; @@ -2115,6 +2116,7 @@ static ssize_t ioc_weight_write(struct kernfs_open_file *of, char *buf, weight_updated(iocg); spin_unlock(&iocg->ioc->lock); + /* blkg_conf_finish() unlocks the q->queue_lock and enables IRQs */ blkg_conf_finish(&ctx); return nbytes; -- 2.20.1