diff options
Diffstat (limited to 'fs/ocfs2/dlm/dlmmaster.c')
-rw-r--r-- | fs/ocfs2/dlm/dlmmaster.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/fs/ocfs2/dlm/dlmmaster.c b/fs/ocfs2/dlm/dlmmaster.c index a3194fe173d9..2e2e95e69499 100644 --- a/fs/ocfs2/dlm/dlmmaster.c +++ b/fs/ocfs2/dlm/dlmmaster.c | |||
@@ -2482,7 +2482,9 @@ top: | |||
2482 | atomic_set(&mle->woken, 1); | 2482 | atomic_set(&mle->woken, 1); |
2483 | spin_unlock(&mle->spinlock); | 2483 | spin_unlock(&mle->spinlock); |
2484 | wake_up(&mle->wq); | 2484 | wake_up(&mle->wq); |
2485 | /* final put will take care of list removal */ | 2485 | /* do not need events any longer, so detach |
2486 | * from heartbeat */ | ||
2487 | __dlm_mle_detach_hb_events(dlm, mle); | ||
2486 | __dlm_put_mle(mle); | 2488 | __dlm_put_mle(mle); |
2487 | } | 2489 | } |
2488 | continue; | 2490 | continue; |
@@ -2537,6 +2539,9 @@ top: | |||
2537 | spin_unlock(&res->spinlock); | 2539 | spin_unlock(&res->spinlock); |
2538 | dlm_lockres_put(res); | 2540 | dlm_lockres_put(res); |
2539 | 2541 | ||
2542 | /* about to get rid of mle, detach from heartbeat */ | ||
2543 | __dlm_mle_detach_hb_events(dlm, mle); | ||
2544 | |||
2540 | /* dump the mle */ | 2545 | /* dump the mle */ |
2541 | spin_lock(&dlm->master_lock); | 2546 | spin_lock(&dlm->master_lock); |
2542 | __dlm_put_mle(mle); | 2547 | __dlm_put_mle(mle); |