diff options
author | Kurt Hackel <kurt.hackel@oracle.com> | 2006-05-01 16:47:50 -0400 |
---|---|---|
committer | Mark Fasheh <mark.fasheh@oracle.com> | 2006-06-26 17:43:08 -0400 |
commit | c8df412e1c746dd21094966d04b3a79aad0f4d08 (patch) | |
tree | b662c0c5b9ff4e5a607d53adb92a8c38acce940e /fs/ocfs2/dlm/dlmrecovery.c | |
parent | 36407488b1cbc4d84bc2bd14e03f3f9b768090d9 (diff) |
ocfs2: special case recovery lock in dlmlock_remote()
If the previous master of the recovery lock dies, let calc_usage take it
down completely and let the caller completely redo the dlmlock() call.
Otherwise, there will never be an opportunity to re-master the lockres and
recovery wont be able to progress.
Signed-off-by: Kurt Hackel <kurt.hackel@oracle.com>
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Diffstat (limited to 'fs/ocfs2/dlm/dlmrecovery.c')
-rw-r--r-- | fs/ocfs2/dlm/dlmrecovery.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/ocfs2/dlm/dlmrecovery.c b/fs/ocfs2/dlm/dlmrecovery.c index 86199f66eb56..00209f4a2916 100644 --- a/fs/ocfs2/dlm/dlmrecovery.c +++ b/fs/ocfs2/dlm/dlmrecovery.c | |||
@@ -2314,6 +2314,10 @@ again: | |||
2314 | mlog(0, "%s: reco master %u is ready to recover %u\n", | 2314 | mlog(0, "%s: reco master %u is ready to recover %u\n", |
2315 | dlm->name, dlm->reco.new_master, dlm->reco.dead_node); | 2315 | dlm->name, dlm->reco.new_master, dlm->reco.dead_node); |
2316 | status = -EEXIST; | 2316 | status = -EEXIST; |
2317 | } else if (ret == DLM_RECOVERING) { | ||
2318 | mlog(0, "dlm=%s dlmlock says master node died (this=%u)\n", | ||
2319 | dlm->name, dlm->node_num); | ||
2320 | goto again; | ||
2317 | } else { | 2321 | } else { |
2318 | struct dlm_lock_resource *res; | 2322 | struct dlm_lock_resource *res; |
2319 | 2323 | ||