aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/multipath.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-04-03 12:08:19 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-04-03 12:08:19 -0400
commit223cdea4c4b5af5181b2da00ac85711d1e0c737c (patch)
treedfe7226c70ddabbf2e2e63924ba636345278e79c /drivers/md/multipath.h
parent31e6e2dac575c9d21a6ec56ca52ae89086baa705 (diff)
parentc8f517c444e4f9f55b5b5ca202b8404691a35805 (diff)
Merge branch 'for-linus' of git://neil.brown.name/md
* 'for-linus' of git://neil.brown.name/md: (53 commits) md/raid5 revise rules for when to update metadata during reshape md/raid5: minor code cleanups in make_request. md: remove CONFIG_MD_RAID_RESHAPE config option. md/raid5: be more careful about write ordering when reshaping. md: don't display meaningless values in sysfs files resync_start and sync_speed md/raid5: allow layout and chunksize to be changed on active array. md/raid5: reshape using largest of old and new chunk size md/raid5: prepare for allowing reshape to change layout md/raid5: prepare for allowing reshape to change chunksize. md/raid5: clearly differentiate 'before' and 'after' stripes during reshape. Documentation/md.txt update md: allow number of drives in raid5 to be reduced md/raid5: change reshape-progress measurement to cope with reshaping backwards. md: add explicit method to signal the end of a reshape. md/raid5: enhance raid5_size to work correctly with negative delta_disks md/raid5: drop qd_idx from r6_state md/raid6: move raid6 data processing to raid6_pq.ko md: raid5 run(): Fix max_degraded for raid level 4. md: 'array_size' sysfs attribute md: centralize ->array_sectors modifications ...
Diffstat (limited to 'drivers/md/multipath.h')
-rw-r--r--drivers/md/multipath.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/drivers/md/multipath.h b/drivers/md/multipath.h
new file mode 100644
index 000000000000..6fa70b400cda
--- /dev/null
+++ b/drivers/md/multipath.h
@@ -0,0 +1,40 @@
1#ifndef _MULTIPATH_H
2#define _MULTIPATH_H
3
4struct multipath_info {
5 mdk_rdev_t *rdev;
6};
7
8struct 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
19typedef 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
33struct 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