浏览代码

[PATCH] mqueue: nested locking annotation

Fix http://bugzilla.kernel.org/show_bug.cgi?id=8130

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Peter Zijlstra 18 年之前
父节点
当前提交
7a434814c7
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      ipc/mqueue.c

+ 2 - 1
ipc/mqueue.c

@@ -731,7 +731,8 @@ asmlinkage long sys_mq_unlink(const char __user *u_name)
 	if (IS_ERR(name))
 	if (IS_ERR(name))
 		return PTR_ERR(name);
 		return PTR_ERR(name);
 
 
-	mutex_lock(&mqueue_mnt->mnt_root->d_inode->i_mutex);
+	mutex_lock_nested(&mqueue_mnt->mnt_root->d_inode->i_mutex,
+			I_MUTEX_PARENT);
 	dentry = lookup_one_len(name, mqueue_mnt->mnt_root, strlen(name));
 	dentry = lookup_one_len(name, mqueue_mnt->mnt_root, strlen(name));
 	if (IS_ERR(dentry)) {
 	if (IS_ERR(dentry)) {
 		err = PTR_ERR(dentry);
 		err = PTR_ERR(dentry);