mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
UPSTREAM: binderfs: drop lock in binderfs_binder_ctl_create
The binderfs_binder_ctl_create() call is a no-op on subsequent calls and
the first call is done before we unlock the suberblock. Hence, there is no
need to take inode_lock() in there. Let's remove it.
Suggested-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Christian Brauner <christian@brauner.io>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Bug: 136497735
(cherry picked from commit 29ef1c8e16)
Change-Id: I7c294796ac7891f62387e09dc34332ca4c3ee67b
Signed-off-by: Hridya Valsaraju <hridya@google.com>
This commit is contained in:
committed by
Hridya Valsaraju
parent
dd9111f9a9
commit
2cb9e4c1f1
@@ -400,8 +400,6 @@ static int binderfs_binder_ctl_create(struct super_block *sb)
|
||||
if (!device)
|
||||
return -ENOMEM;
|
||||
|
||||
inode_lock(d_inode(root));
|
||||
|
||||
/* If we have already created a binder-control node, return. */
|
||||
if (info->control_dentry) {
|
||||
ret = 0;
|
||||
@@ -440,12 +438,10 @@ static int binderfs_binder_ctl_create(struct super_block *sb)
|
||||
inode->i_private = device;
|
||||
info->control_dentry = dentry;
|
||||
d_add(dentry, inode);
|
||||
inode_unlock(d_inode(root));
|
||||
|
||||
return 0;
|
||||
|
||||
out:
|
||||
inode_unlock(d_inode(root));
|
||||
kfree(device);
|
||||
iput(inode);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user