cgroup: fix missing unlock in cgroup_release_agent()
authorZefan Li <lizefan@huawei.com>
Sat, 20 Sep 2014 06:35:43 +0000 (14:35 +0800)
committerTejun Heo <tj@kernel.org>
Sat, 20 Sep 2014 16:23:35 +0000 (12:23 -0400)
The patch 971ff4935538: "cgroup: use a per-cgroup work for release
agent" from Sep 18, 2014, leads to the following static checker
warning:

kernel/cgroup.c:5310 cgroup_release_agent()
warn: 'mutex:&cgroup_mutex' is sometimes locked here and sometimes unlocked.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Zefan Li <lizefan@huawei.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
kernel/cgroup.c

index 16e3a4f..f873c46 100644 (file)
@@ -5291,7 +5291,10 @@ static void cgroup_release_agent(struct work_struct *work)
 
        mutex_unlock(&cgroup_mutex);
        call_usermodehelper(argv[0], argv, envp, UMH_WAIT_EXEC);
+       goto out_free;
 out:
+       mutex_unlock(&cgroup_mutex);
+out_free:
        kfree(agentbuf);
        kfree(pathbuf);
 }