ocfs2/dlm: Target node death during resource migration leads to thread spin
authorSunil Mushran <sunil.mushran@oracle.com>
Wed, 4 May 2011 17:28:07 +0000 (10:28 -0700)
committerJoel Becker <jlbec@evilplan.org>
Fri, 13 May 2011 18:27:30 +0000 (11:27 -0700)
During resource migration, if the target node were to die, the thread doing
the migration spins until the target node is not removed from the domain map.
This patch slows the spin by making the thread wait for the recovery to kick in.

Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>
Signed-off-by: Joel Becker <jlbec@evilplan.org>
fs/ocfs2/dlm/dlmmaster.c

index fede57ed005ff417b80b5c3bc9c1d25fe3aaa526..84d166328cf7448f36cfcb0a54f08eefda50e18d 100644 (file)
@@ -2574,6 +2574,9 @@ fail:
                res->state &= ~DLM_LOCK_RES_MIGRATING;
                wake = 1;
                spin_unlock(&res->spinlock);
+               if (dlm_is_host_down(ret))
+                       dlm_wait_for_node_death(dlm, target,
+                                               DLM_NODE_DEATH_WAIT_MAX);
                goto leave;
        }