aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorKurt Hackel <kurt.hackel@oracle.com>2007-01-05 18:02:30 -0500
committerMark Fasheh <mark.fasheh@oracle.com>2007-02-07 15:01:49 -0500
commit71ac1062435ba2d58bf64817b47a6e44f316752e (patch)
treed28d47f38aafebe54d926d13c20588d92e1ef466 /fs
parentddc09c8ddac8d0f170ba8caa8128801f358dccff (diff)
ocfs2_dlm: Make dlmunlock() wait for migration to complete
dlmunlock() was not waiting for migration to complete before releasing locks on locally mastered locks. Signed-off-by: Kurt Hackel <kurt.hackel@oracle.com> Signed-off-by: Sunil Mushran <Sunil.Mushran@oracle.com> Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/ocfs2/dlm/dlmrecovery.c1
-rw-r--r--fs/ocfs2/dlm/dlmunlock.c4
2 files changed, 5 insertions, 0 deletions
diff --git a/fs/ocfs2/dlm/dlmrecovery.c b/fs/ocfs2/dlm/dlmrecovery.c
index d011a2a22742..3057b65a4b8b 100644
--- a/fs/ocfs2/dlm/dlmrecovery.c
+++ b/fs/ocfs2/dlm/dlmrecovery.c
@@ -1763,6 +1763,7 @@ static int dlm_process_recovery_data(struct dlm_ctxt *dlm,
1763 "with cookie %u:%llu!\n", 1763 "with cookie %u:%llu!\n",
1764 dlm_get_lock_cookie_node(c), 1764 dlm_get_lock_cookie_node(c),
1765 dlm_get_lock_cookie_seq(c)); 1765 dlm_get_lock_cookie_seq(c));
1766 __dlm_print_one_lock_resource(res);
1766 BUG(); 1767 BUG();
1767 } 1768 }
1768 BUG_ON(lock->ml.node != ml->node); 1769 BUG_ON(lock->ml.node != ml->node);
diff --git a/fs/ocfs2/dlm/dlmunlock.c b/fs/ocfs2/dlm/dlmunlock.c
index 37be4b2e0d4a..3c8a250fcfec 100644
--- a/fs/ocfs2/dlm/dlmunlock.c
+++ b/fs/ocfs2/dlm/dlmunlock.c
@@ -147,6 +147,10 @@ static enum dlm_status dlmunlock_common(struct dlm_ctxt *dlm,
147 goto leave; 147 goto leave;
148 } 148 }
149 149
150 if (res->state & DLM_LOCK_RES_MIGRATING) {
151 status = DLM_MIGRATING;
152 goto leave;
153 }
150 154
151 /* see above for what the spec says about 155 /* see above for what the spec says about
152 * LKM_CANCEL and the lock queue state */ 156 * LKM_CANCEL and the lock queue state */