summary refs log tree commit diff
path: root/drivers/md/multipath.h
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2009-03-31 14:27:03 +1100
committerNeilBrown <neilb@suse.de>2009-03-31 14:27:03 +1100
commitef740c372dfd80e706dbf955d4e4aedda6c0c148 (patch)
tree8d9ef9db346ee1ba319a125c9de83cdde049510d /drivers/md/multipath.h
parent2a40a8aed083d988df6822bb9b1b08fb7ce21e1d (diff)
downloadlinux-ef740c372dfd80e706dbf955d4e4aedda6c0c148.tar.gz
md: move headers out of include/linux/raid/
Move the headers with the local structures for the disciplines and
bitmap.h into drivers/md/ so that they are more easily grepable for
hacking and not far away.  md.h is left where it is for now as there
are some uses from the outside.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md/multipath.h')
-rw-r--r--drivers/md/multipath.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/drivers/md/multipath.h b/drivers/md/multipath.h
new file mode 100644
index 000000000000..6f53fc177a47
--- /dev/null
+++ b/drivers/md/multipath.h
@@ -0,0 +1,42 @@
+#ifndef _MULTIPATH_H
+#define _MULTIPATH_H
+
+#include <linux/raid/md.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