]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | #ifndef _MULTIPATH_H |
2 | #define _MULTIPATH_H | |
3 | ||
1da177e4 LT |
4 | struct multipath_info { |
5 | mdk_rdev_t *rdev; | |
6 | }; | |
7 | ||
8 | struct multipath_private_data { | |
9 | mddev_t *mddev; | |
10 | struct multipath_info *multipaths; | |
11 | int raid_disks; | |
12 | int working_disks; | |
13 | spinlock_t device_lock; | |
14 | struct list_head retry_list; | |
15 | ||
16 | mempool_t *pool; | |
17 | }; | |
18 | ||
19 | typedef struct multipath_private_data multipath_conf_t; | |
20 | ||
21 | /* | |
22 | * this is the only point in the RAID code where we violate | |
23 | * C type safety. mddev->private is an 'opaque' pointer. | |
24 | */ | |
25 | #define mddev_to_conf(mddev) ((multipath_conf_t *) mddev->private) | |
26 | ||
27 | /* | |
28 | * this is our 'private' 'collective' MULTIPATH buffer head. | |
29 | * it contains information about what kind of IO operations were started | |
30 | * for this MULTIPATH operation, and about their status: | |
31 | */ | |
32 | ||
33 | struct multipath_bh { | |
34 | mddev_t *mddev; | |
35 | struct bio *master_bio; | |
36 | struct bio bio; | |
37 | int path; | |
38 | struct list_head retry_list; | |
39 | }; | |
40 | #endif |