summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSunil Mushran <sunil.mushran@oracle.com>2011-05-04 10:28:07 -0700
committerJoel Becker <jlbec@evilplan.org>2011-05-13 11:27:30 -0700
commitdf016c665b10ae80d8db67ec8103b50c5c234e5c (patch)
tree84d2737f5c7ce101aefb98a0b1b3ae1c761cde5e
parent10b3dd76117a327557b8cb898b41c18afd08dc86 (diff)
downloadlinux-df016c665b10ae80d8db67ec8103b50c5c234e5c.tar.gz
linux-df016c665b10ae80d8db67ec8103b50c5c234e5c.tar.bz2
linux-df016c665b10ae80d8db67ec8103b50c5c234e5c.zip
ocfs2/dlm: Target node death during resource migration leads to thread spin
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>
-rw-r--r--fs/ocfs2/dlm/dlmmaster.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/ocfs2/dlm/dlmmaster.c b/fs/ocfs2/dlm/dlmmaster.c
index fede57ed005f..84d166328cf7 100644
--- a/fs/ocfs2/dlm/dlmmaster.c
+++ b/fs/ocfs2/dlm/dlmmaster.c
@@ -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;
}