Skip to content

Commit 64a56f6

Browse files
neilbrownbrauner
authored andcommitted
exportfs: remove locking around ->get_parent() call.
The locking around the ->get_parent() call brings no value. We are locking a child which is only used to find an inode and thence the parent inode number. All further activity involves the parent inode which may have several children so locking one child cannot protect the parent in any useful way. The filesystem must already ensure that only one 'struct inode' exists for a given inode, and will call d_obtain_alias() which contains the required locking to ensure only one dentry will be attached to that inode. So remove the unnecessary locking. Signed-off-by: NeilBrown <neil@brown.name> Link: https://lore.kernel.org/r/174190497326.9342.9313518146512158587@noble.neil.brown.name Signed-off-by: Christian Brauner <brauner@kernel.org>
1 parent dc530c4 commit 64a56f6

1 file changed

Lines changed: 0 additions & 2 deletions

File tree

fs/exportfs/expfs.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,8 @@ static struct dentry *reconnect_one(struct vfsmount *mnt,
126126
int err;
127127

128128
parent = ERR_PTR(-EACCES);
129-
inode_lock(dentry->d_inode);
130129
if (mnt->mnt_sb->s_export_op->get_parent)
131130
parent = mnt->mnt_sb->s_export_op->get_parent(dentry);
132-
inode_unlock(dentry->d_inode);
133131

134132
if (IS_ERR(parent)) {
135133
dprintk("get_parent of %lu failed, err %ld\n",

0 commit comments

Comments
 (0)