|
|
@@ -2442,13 +2442,14 @@ static void dentry_lock_for_move(struct dentry *dentry, struct dentry *target)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-static void dentry_unlock_parents_for_move(struct dentry *dentry,
|
|
|
- struct dentry *target)
|
|
|
+static void dentry_unlock_for_move(struct dentry *dentry, struct dentry *target)
|
|
|
{
|
|
|
if (target->d_parent != dentry->d_parent)
|
|
|
spin_unlock(&dentry->d_parent->d_lock);
|
|
|
if (target->d_parent != target)
|
|
|
spin_unlock(&target->d_parent->d_lock);
|
|
|
+ spin_unlock(&target->d_lock);
|
|
|
+ spin_unlock(&dentry->d_lock);
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
@@ -2531,9 +2532,7 @@ static void __d_move(struct dentry *dentry, struct dentry *target,
|
|
|
write_seqcount_end(&target->d_seq);
|
|
|
write_seqcount_end(&dentry->d_seq);
|
|
|
|
|
|
- dentry_unlock_parents_for_move(dentry, target);
|
|
|
- spin_unlock(&target->d_lock);
|
|
|
- spin_unlock(&dentry->d_lock);
|
|
|
+ dentry_unlock_for_move(dentry, target);
|
|
|
}
|
|
|
|
|
|
/*
|