diff options
Diffstat (limited to 'fs/ocfs2/dlm/dlmunlock.c')
-rw-r--r-- | fs/ocfs2/dlm/dlmunlock.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/ocfs2/dlm/dlmunlock.c b/fs/ocfs2/dlm/dlmunlock.c index ac89c509daf9..9b40d60e3b49 100644 --- a/fs/ocfs2/dlm/dlmunlock.c +++ b/fs/ocfs2/dlm/dlmunlock.c | |||
@@ -317,6 +317,16 @@ static enum dlm_status dlm_send_remote_unlock_request(struct dlm_ctxt *dlm, | |||
317 | size_t veclen = 1; | 317 | size_t veclen = 1; |
318 | 318 | ||
319 | mlog_entry("%.*s\n", res->lockname.len, res->lockname.name); | 319 | mlog_entry("%.*s\n", res->lockname.len, res->lockname.name); |
320 | |||
321 | if (owner == dlm->node_num) { | ||
322 | /* ended up trying to contact ourself. this means | ||
323 | * that the lockres had been remote but became local | ||
324 | * via a migration. just retry it, now as local */ | ||
325 | mlog(0, "%s:%.*s: this node became the master due to a " | ||
326 | "migration, re-evaluate now\n", dlm->name, | ||
327 | res->lockname.len, res->lockname.name); | ||
328 | return DLM_FORWARD; | ||
329 | } | ||
320 | 330 | ||
321 | memset(&unlock, 0, sizeof(unlock)); | 331 | memset(&unlock, 0, sizeof(unlock)); |
322 | unlock.node_idx = dlm->node_num; | 332 | unlock.node_idx = dlm->node_num; |