diff options
Diffstat (limited to 'fs/ocfs2/dlm/dlmrecovery.c')
| -rw-r--r-- | fs/ocfs2/dlm/dlmrecovery.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/fs/ocfs2/dlm/dlmrecovery.c b/fs/ocfs2/dlm/dlmrecovery.c index 79b5af5e6a7b..ce12e0b1a31f 100644 --- a/fs/ocfs2/dlm/dlmrecovery.c +++ b/fs/ocfs2/dlm/dlmrecovery.c | |||
| @@ -1070,6 +1070,9 @@ static void dlm_move_reco_locks_to_list(struct dlm_ctxt *dlm, | |||
| 1070 | dead_node, dlm->name); | 1070 | dead_node, dlm->name); |
| 1071 | list_del_init(&lock->list); | 1071 | list_del_init(&lock->list); |
| 1072 | dlm_lock_put(lock); | 1072 | dlm_lock_put(lock); |
| 1073 | /* Can't schedule DLM_UNLOCK_FREE_LOCK | ||
| 1074 | * - do manually */ | ||
| 1075 | dlm_lock_put(lock); | ||
| 1073 | break; | 1076 | break; |
| 1074 | } | 1077 | } |
| 1075 | } | 1078 | } |
| @@ -2023,11 +2026,8 @@ leave: | |||
| 2023 | dlm_lockres_drop_inflight_ref(dlm, res); | 2026 | dlm_lockres_drop_inflight_ref(dlm, res); |
| 2024 | spin_unlock(&res->spinlock); | 2027 | spin_unlock(&res->spinlock); |
| 2025 | 2028 | ||
| 2026 | if (ret < 0) { | 2029 | if (ret < 0) |
| 2027 | mlog_errno(ret); | 2030 | mlog_errno(ret); |
| 2028 | if (newlock) | ||
| 2029 | dlm_lock_put(newlock); | ||
| 2030 | } | ||
| 2031 | 2031 | ||
| 2032 | return ret; | 2032 | return ret; |
| 2033 | } | 2033 | } |
| @@ -2349,6 +2349,10 @@ static void dlm_do_local_recovery_cleanup(struct dlm_ctxt *dlm, u8 dead_node) | |||
| 2349 | dead_node, dlm->name); | 2349 | dead_node, dlm->name); |
| 2350 | list_del_init(&lock->list); | 2350 | list_del_init(&lock->list); |
| 2351 | dlm_lock_put(lock); | 2351 | dlm_lock_put(lock); |
| 2352 | /* Can't schedule | ||
| 2353 | * DLM_UNLOCK_FREE_LOCK | ||
| 2354 | * - do manually */ | ||
| 2355 | dlm_lock_put(lock); | ||
| 2352 | break; | 2356 | break; |
| 2353 | } | 2357 | } |
| 2354 | } | 2358 | } |
