cpuset: fix cpuset_print_task_mems_allowed() vs rename() race
commit59222bdd5b2a0e4f868d867a71397945236c1412
authorLi Zefan <lizefan@huawei.com>
Fri, 25 Jan 2013 08:08:01 +0000 (25 16:08 +0800)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 6 Mar 2013 03:24:02 +0000 (6 03:24 +0000)
tree66dc15130ef6d658b5225c3032790d00e70c392d
parentd6f179e6f4e2dd693f848bb4e06176a01a6553ab
cpuset: fix cpuset_print_task_mems_allowed() vs rename() race

commit 63f43f55c9bbc14f76b582644019b8a07dc8219a upstream.

rename() will change dentry->d_name. The result of this race can
be worse than seeing partially rewritten name, but we might access
a stale pointer because rename() will re-allocate memory to hold
a longer name.

It's safe in the protection of dentry->d_lock.

v2: check NULL dentry before acquiring dentry lock.

Signed-off-by: Li Zefan <lizefan@huawei.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
kernel/cpuset.c