initial commit with v2.6.9
[linux-2.6.9-moxart.git] / include / linux / raid / multipath.h
bloba8db266ab705a4c3571fb511fbeac5bbbadfc0e9
1 #ifndef _MULTIPATH_H
2 #define _MULTIPATH_H
4 #include <linux/raid/md.h>
6 struct multipath_info {
7 mdk_rdev_t *rdev;
8 };
10 struct multipath_private_data {
11 mddev_t *mddev;
12 struct multipath_info *multipaths;
13 int raid_disks;
14 int working_disks;
15 spinlock_t device_lock;
17 mempool_t *pool;
20 typedef struct multipath_private_data multipath_conf_t;
23 * this is the only point in the RAID code where we violate
24 * C type safety. mddev->private is an 'opaque' pointer.
26 #define mddev_to_conf(mddev) ((multipath_conf_t *) mddev->private)
29 * this is our 'private' 'collective' MULTIPATH buffer head.
30 * it contains information about what kind of IO operations were started
31 * for this MULTIPATH operation, and about their status:
34 struct multipath_bh {
35 mddev_t *mddev;
36 struct bio *master_bio;
37 struct bio bio;
38 int path;
39 struct multipath_bh *next_mp; /* next for retry */
41 #endif