]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/md/multipath.h
Merge branch 'omap-pool'
[linux-2.6-omap-h63xx.git] / drivers / md / multipath.h
diff --git a/drivers/md/multipath.h b/drivers/md/multipath.h
new file mode 100644 (file)
index 0000000..6fa70b4
--- /dev/null
@@ -0,0 +1,40 @@
+#ifndef _MULTIPATH_H
+#define _MULTIPATH_H
+
+struct multipath_info {
+       mdk_rdev_t      *rdev;
+};
+
+struct multipath_private_data {
+       mddev_t                 *mddev;
+       struct multipath_info   *multipaths;
+       int                     raid_disks;
+       int                     working_disks;
+       spinlock_t              device_lock;
+       struct list_head        retry_list;
+
+       mempool_t               *pool;
+};
+
+typedef struct multipath_private_data multipath_conf_t;
+
+/*
+ * this is the only point in the RAID code where we violate
+ * C type safety. mddev->private is an 'opaque' pointer.
+ */
+#define mddev_to_conf(mddev) ((multipath_conf_t *) mddev->private)
+
+/*
+ * this is our 'private' 'collective' MULTIPATH buffer head.
+ * it contains information about what kind of IO operations were started
+ * for this MULTIPATH operation, and about their status:
+ */
+
+struct multipath_bh {
+       mddev_t                 *mddev;
+       struct bio              *master_bio;
+       struct bio              bio;
+       int                     path;
+       struct list_head        retry_list;
+};
+#endif