diff options
-rw-r--r-- | fs/dcache.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/dcache.c b/fs/dcache.c index 0364af2311f4..693f95bf1cae 100644 --- a/fs/dcache.c +++ b/fs/dcache.c | |||
@@ -1134,6 +1134,8 @@ positive: | |||
1134 | return 1; | 1134 | return 1; |
1135 | 1135 | ||
1136 | rename_retry: | 1136 | rename_retry: |
1137 | if (locked) | ||
1138 | goto again; | ||
1137 | locked = 1; | 1139 | locked = 1; |
1138 | write_seqlock(&rename_lock); | 1140 | write_seqlock(&rename_lock); |
1139 | goto again; | 1141 | goto again; |
@@ -1236,6 +1238,8 @@ out: | |||
1236 | rename_retry: | 1238 | rename_retry: |
1237 | if (found) | 1239 | if (found) |
1238 | return found; | 1240 | return found; |
1241 | if (locked) | ||
1242 | goto again; | ||
1239 | locked = 1; | 1243 | locked = 1; |
1240 | write_seqlock(&rename_lock); | 1244 | write_seqlock(&rename_lock); |
1241 | goto again; | 1245 | goto again; |
@@ -3035,6 +3039,8 @@ resume: | |||
3035 | return; | 3039 | return; |
3036 | 3040 | ||
3037 | rename_retry: | 3041 | rename_retry: |
3042 | if (locked) | ||
3043 | goto again; | ||
3038 | locked = 1; | 3044 | locked = 1; |
3039 | write_seqlock(&rename_lock); | 3045 | write_seqlock(&rename_lock); |
3040 | goto again; | 3046 | goto again; |