Re: [PATCH] blkcg: Unlock blkcg_pol_mutex once if cpd == NULL
flat view
From: Tejun Heo <tj@kernel.org>
Date: 2016-09-29 10:03:59
Hello, On Mon, Sep 26, 2016 at 03:36:25PM -0700, Bart Van Assche wrote:
quoted hunk ↗ jump to hunk
Unlocking a mutex twice is wrong. Hence modify blkcg_policy_register() such that blkcg_pol_mutex is unlocked once if cpd == NULL. This patch avoids that smatch reports the following error: block/blk-cgroup.c:1378: blkcg_policy_register() error: double unlock 'mutex:&blkcg_pol_mutex' Signed-off-by: Bart Van Assche <redacted> Cc: Tejun Heo <tj@kernel.org> Cc: <redacted> --- block/blk-cgroup.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c index dd38e5c..cdbca1c 100644 --- a/block/blk-cgroup.c +++ b/block/blk-cgroup.c@@ -1327,8 +1327,10 @@ int blkcg_policy_register(struct blkcg_policy *pol) for (i = 0; i < BLKCG_MAX_POLS; i++) if (!blkcg_policy[i]) break; - if (i >= BLKCG_MAX_POLS) + if (i >= BLKCG_MAX_POLS) { + mutex_unlock(&blkcg_pol_mutex); goto err_unlock; + }
Wouldn't it be better to drop explicit mutx_unlock(&blkcg_pol_mutex) on "if (!cpd)"? Thanks. -- tejun