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>
This commit is contained in:
Christian Brauner 2019-01-21 11:48:07 +01:00 committed by Greg Kroah-Hartman
parent 4198479524
commit 29ef1c8e16

View File

@ -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);