Introduce md_cluster_operations to handle cluster functions
authorGoldwyn Rodrigues <rgoldwyn@suse.com>
Sat, 29 Mar 2014 15:01:53 +0000 (10:01 -0500)
committerGoldwyn Rodrigues <rgoldwyn@suse.com>
Mon, 23 Feb 2015 13:28:42 +0000 (07:28 -0600)
This allows dynamic registering of cluster hooks.

Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com>
drivers/md/md-cluster.c
drivers/md/md-cluster.h [new file with mode: 0644]
drivers/md/md.c
drivers/md/md.h

index bc8ea9d..e223560 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/dlm.h>
 #include <linux/sched.h>
 #include "md.h"
+#include "md-cluster.h"
 
 #define LVB_SIZE       64
 
@@ -113,15 +114,32 @@ static void lockres_free(struct dlm_lock_resource *res)
        kfree(res);
 }
 
+static int join(struct mddev *mddev, int nodes)
+{
+       return 0;
+}
+
+static int leave(struct mddev *mddev)
+{
+       return 0;
+}
+
+static struct md_cluster_operations cluster_ops = {
+       .join   = join,
+       .leave  = leave,
+};
+
 static int __init cluster_init(void)
 {
        pr_warn("md-cluster: EXPERIMENTAL. Use with caution\n");
        pr_info("Registering Cluster MD functions\n");
+       register_md_cluster_operations(&cluster_ops, THIS_MODULE);
        return 0;
 }
 
 static void cluster_exit(void)
 {
+       unregister_md_cluster_operations();
 }
 
 module_init(cluster_init);
diff --git a/drivers/md/md-cluster.h b/drivers/md/md-cluster.h
new file mode 100644 (file)
index 0000000..aa9f07b
--- /dev/null
@@ -0,0 +1,15 @@
+
+
+#ifndef _MD_CLUSTER_H
+#define _MD_CLUSTER_H
+
+#include "md.h"
+
+struct mddev;
+
+struct md_cluster_operations {
+       int (*join)(struct mddev *mddev);
+       int (*leave)(struct mddev *mddev);
+};
+
+#endif /* _MD_CLUSTER_H */
diff --cc drivers/md/md.c
Simple merge
diff --cc drivers/md/md.h
Simple merge