xref: /openbmc/linux/drivers/md/md-multipath.h (revision afeee514)
147f521baSLinus Torvalds /* SPDX-License-Identifier: GPL-2.0 */
2935fe098SMike Snitzer #ifndef _MULTIPATH_H
3935fe098SMike Snitzer #define _MULTIPATH_H
4935fe098SMike Snitzer 
5935fe098SMike Snitzer struct multipath_info {
6935fe098SMike Snitzer 	struct md_rdev	*rdev;
7935fe098SMike Snitzer };
8935fe098SMike Snitzer 
9935fe098SMike Snitzer struct mpconf {
10935fe098SMike Snitzer 	struct mddev			*mddev;
11935fe098SMike Snitzer 	struct multipath_info	*multipaths;
12935fe098SMike Snitzer 	int			raid_disks;
13935fe098SMike Snitzer 	spinlock_t		device_lock;
14935fe098SMike Snitzer 	struct list_head	retry_list;
15935fe098SMike Snitzer 
16afeee514SKent Overstreet 	mempool_t		pool;
17935fe098SMike Snitzer };
18935fe098SMike Snitzer 
19935fe098SMike Snitzer /*
20935fe098SMike Snitzer  * this is our 'private' 'collective' MULTIPATH buffer head.
21935fe098SMike Snitzer  * it contains information about what kind of IO operations were started
22935fe098SMike Snitzer  * for this MULTIPATH operation, and about their status:
23935fe098SMike Snitzer  */
24935fe098SMike Snitzer 
25935fe098SMike Snitzer struct multipath_bh {
26935fe098SMike Snitzer 	struct mddev			*mddev;
27935fe098SMike Snitzer 	struct bio		*master_bio;
28935fe098SMike Snitzer 	struct bio		bio;
29935fe098SMike Snitzer 	int			path;
30935fe098SMike Snitzer 	struct list_head	retry_list;
31935fe098SMike Snitzer };
32935fe098SMike Snitzer #endif
33