ocfs2/dlm: Do not migrate resource to a node that is leaving the domain
authorSunil Mushran <sunil.mushran@oracle.com>
Thu, 19 May 2011 21:34:12 +0000 (14:34 -0700)
committerJoel Becker <jlbec@evilplan.org>
Thu, 26 May 2011 04:05:22 +0000 (21:05 -0700)
commit66effd3c681256874a81436493a933edb1701798
treece0b9047ee7be10b6e7e8848f731e1d6a7579731
parentbddefdeec5bc56ba5aa2c2ca8c904cdff58e7e5b
ocfs2/dlm: Do not migrate resource to a node that is leaving the domain

During dlm domain shutdown, o2dlm has to free all the lock resources. Ones that
have no locks and references are freed. Ones that have locks and/or references
are migrated to another node.

The first task in migration is finding a target. Currently we scan the lock
resource and find one node that either has a lock or a reference. This is not
very efficient in a parallel umount case as we might end up migrating the
lock resource to a node which itself may have to migrate it to a third node.

The patch scans the dlm->exit_domain_map to ensure the target node is not
leaving the domain. If no valid target node is found, o2dlm does not migrate
the resource but instead waits for the unlock and deref messages that will
allow it to free the resource.

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