diff options
| -rw-r--r-- | fs/dcache.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/fs/dcache.c b/fs/dcache.c index 6e543173a5d8..92f7d76db498 100644 --- a/fs/dcache.c +++ b/fs/dcache.c | |||
| @@ -2442,13 +2442,14 @@ static void dentry_lock_for_move(struct dentry *dentry, struct dentry *target) | |||
| 2442 | } | 2442 | } |
| 2443 | } | 2443 | } |
| 2444 | 2444 | ||
| 2445 | static void dentry_unlock_parents_for_move(struct dentry *dentry, | 2445 | static void dentry_unlock_for_move(struct dentry *dentry, struct dentry *target) |
| 2446 | struct dentry *target) | ||
| 2447 | { | 2446 | { |
| 2448 | if (target->d_parent != dentry->d_parent) | 2447 | if (target->d_parent != dentry->d_parent) |
| 2449 | spin_unlock(&dentry->d_parent->d_lock); | 2448 | spin_unlock(&dentry->d_parent->d_lock); |
| 2450 | if (target->d_parent != target) | 2449 | if (target->d_parent != target) |
| 2451 | spin_unlock(&target->d_parent->d_lock); | 2450 | spin_unlock(&target->d_parent->d_lock); |
| 2451 | spin_unlock(&target->d_lock); | ||
| 2452 | spin_unlock(&dentry->d_lock); | ||
| 2452 | } | 2453 | } |
| 2453 | 2454 | ||
| 2454 | /* | 2455 | /* |
| @@ -2531,9 +2532,7 @@ static void __d_move(struct dentry *dentry, struct dentry *target, | |||
| 2531 | write_seqcount_end(&target->d_seq); | 2532 | write_seqcount_end(&target->d_seq); |
| 2532 | write_seqcount_end(&dentry->d_seq); | 2533 | write_seqcount_end(&dentry->d_seq); |
| 2533 | 2534 | ||
| 2534 | dentry_unlock_parents_for_move(dentry, target); | 2535 | dentry_unlock_for_move(dentry, target); |
| 2535 | spin_unlock(&target->d_lock); | ||
| 2536 | spin_unlock(&dentry->d_lock); | ||
| 2537 | } | 2536 | } |
| 2538 | 2537 | ||
| 2539 | /* | 2538 | /* |
