blob: 717c60f628982ebf659c7aa00bd1608e0fc8ddf0 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef _MULTIPATH_H
2#define _MULTIPATH_H
3
Linus Torvalds1da177e2005-04-16 15:20:36 -07004struct multipath_info {
NeilBrown3cb03002011-10-11 16:45:26 +11005 struct md_rdev *rdev;
Linus Torvalds1da177e2005-04-16 15:20:36 -07006};
7
NeilBrown69724e22011-10-11 16:48:57 +11008struct mpconf {
NeilBrownfd01b882011-10-11 16:47:53 +11009 struct mddev *mddev;
Linus Torvalds1da177e2005-04-16 15:20:36 -070010 struct multipath_info *multipaths;
11 int raid_disks;
Linus Torvalds1da177e2005-04-16 15:20:36 -070012 spinlock_t device_lock;
13 struct list_head retry_list;
14
15 mempool_t *pool;
16};
17
Linus Torvalds1da177e2005-04-16 15:20:36 -070018/*
Linus Torvalds1da177e2005-04-16 15:20:36 -070019 * this is our 'private' 'collective' MULTIPATH buffer head.
20 * it contains information about what kind of IO operations were started
21 * for this MULTIPATH operation, and about their status:
22 */
23
24struct multipath_bh {
NeilBrownfd01b882011-10-11 16:47:53 +110025 struct mddev *mddev;
Linus Torvalds1da177e2005-04-16 15:20:36 -070026 struct bio *master_bio;
27 struct bio bio;
28 int path;
29 struct list_head retry_list;
30};
31#endif