[Ocfs2-devel] [PATCH 1/5] Add dlm operations placeholders

Goldwyn Rodrigues rgoldwyn at suse.de
Wed Aug 21 06:09:26 PDT 2013


Signed-off-by: Goldwyn Rodrigues <rgoldwyn at suse.com>
---
 fs/ocfs2/stack_user.c | 30 ++++++++++++++++++++++++++++--
 1 file changed, 28 insertions(+), 2 deletions(-)

diff --git a/fs/ocfs2/stack_user.c b/fs/ocfs2/stack_user.c
index 286edf1..1b18193 100644
--- a/fs/ocfs2/stack_user.c
+++ b/fs/ocfs2/stack_user.c
@@ -799,11 +799,31 @@ static int fs_protocol_compare(struct ocfs2_protocol_version *existing,
 	return 0;
 }
 
+static void user_recover_prep(void *arg)
+{
+}
+
+static void user_recover_slot(void *arg, struct dlm_slot *slot)
+{
+}
+
+static void user_recover_done(void *arg, struct dlm_slot *slots,
+			      int num_slots, int our_slot,
+			      uint32_t generation)
+{
+}
+
+const struct dlm_lockspace_ops ocfs2_ls_ops = {
+	.recover_prep = user_recover_prep,
+	.recover_slot = user_recover_slot,
+	.recover_done = user_recover_done,
+};
+
 static int user_cluster_connect(struct ocfs2_cluster_connection *conn)
 {
 	dlm_lockspace_t *fsdlm;
 	struct ocfs2_live_connection *uninitialized_var(control);
-	int rc = 0;
+	int rc = 0, ops_rv;
 
 	BUG_ON(conn == NULL);
 
@@ -828,12 +848,18 @@ static int user_cluster_connect(struct ocfs2_cluster_connection *conn)
 	}
 
 	rc = dlm_new_lockspace(conn->cc_name, NULL, DLM_LSFL_FS, DLM_LVB_LEN,
-			       NULL, NULL, NULL, &fsdlm);
+			       &ocfs2_ls_ops, conn, &ops_rv, &fsdlm);
 	if (rc) {
 		ocfs2_live_connection_drop(control);
 		goto out;
 	}
 
+	if (ops_rv < 0) {
+		printk(KERN_ERR "ocfs2: dlm lockspace ops could not be used. You may be using an older dlm_controld\n");
+		rc = -EINVAL;
+		goto out;
+	}
+
 	conn->cc_private = control;
 	conn->cc_lockspace = fsdlm;
 out:
-- 
1.8.1.4


-- 
Goldwyn



More information about the Ocfs2-devel mailing list