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