--- /dev/null
+From: Sunil Mushran <sunil.mushran@oracle.com>
+Date: Tue, 3 Feb 2009 12:37:15 -0800
+Subject: [PATCH] ocfs2/dlm: Use ast_lock to protect ast_list
+Patch-mainline: 2.6.29
+
+The code was using dlm->spinlock instead of dlm->ast_lock to protect the
+ast_list. This patch fixes the issue.
+
+Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>
+Acked-by: Joel Becker <joel.becker@oracle.com>
+Signed-off-by: Mark Fasheh <mfasheh@suse.com>
+---
+ fs/ocfs2/dlm/dlmunlock.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+Index: linux-2.6.27-sle11_ocfs2_update2/fs/ocfs2/dlm/dlmunlock.c
+===================================================================
+--- linux-2.6.27-sle11_ocfs2_update2.orig/fs/ocfs2/dlm/dlmunlock.c
++++ linux-2.6.27-sle11_ocfs2_update2/fs/ocfs2/dlm/dlmunlock.c
+@@ -117,11 +117,11 @@ static enum dlm_status dlmunlock_common(
+ else
+ BUG_ON(res->owner == dlm->node_num);
+
+- spin_lock(&dlm->spinlock);
++ spin_lock(&dlm->ast_lock);
+ /* We want to be sure that we're not freeing a lock
+ * that still has AST's pending... */
+ in_use = !list_empty(&lock->ast_list);
+- spin_unlock(&dlm->spinlock);
++ spin_unlock(&dlm->ast_lock);
+ if (in_use) {
+ mlog(ML_ERROR, "lockres %.*s: Someone is calling dlmunlock "
+ "while waiting for an ast!", res->lockname.len,