 +	}
 +
 +	memcpy(&be_nodeid, buf, sizeof(uint32_t));
-+	rsb->res_nodeid = be32_to_cpu(be_nodeid);
-+	set_new_master(rsb);
++	set_new_master(rsb, be32_to_cpu(be_nodeid));
 +	recover_list_del(rsb);
 +
 +	if (recover_list_empty(ls))

+#endif				/* __CONFIG_DOT_H__ */
diff -urN linux-orig/cluster/dlm/device.c linux-patched/cluster/dlm/device.c
--- linux-orig/cluster/dlm/device.c	1970-01-01 07:30:00.000000000 +0730
+++ linux-patched/cluster/dlm/device.c	2004-07-16 23:51:09.000000000 +0800
@@ -0,0 +1,1020 @@
+/******************************************************************************
+*******************************************************************************

+			DLM_ASSERT(lkb->lkb_astflags == 0,
+			    printk("%x %x\n", lkb->lkb_id, lkb->lkb_astflags););
+
+			/* FIXME: we don't want to block asts for other
+			   lockspaces while one is being recovered */
+
+			down_read(&ls->ls_in_recovery);
+			release_lkb(ls, lkb);
+			release_rsb(rsb);
