162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef _MULTIPATH_H
362306a36Sopenharmony_ci#define _MULTIPATH_H
462306a36Sopenharmony_ci
562306a36Sopenharmony_cistruct multipath_info {
662306a36Sopenharmony_ci	struct md_rdev	*rdev;
762306a36Sopenharmony_ci};
862306a36Sopenharmony_ci
962306a36Sopenharmony_cistruct mpconf {
1062306a36Sopenharmony_ci	struct mddev			*mddev;
1162306a36Sopenharmony_ci	struct multipath_info	*multipaths;
1262306a36Sopenharmony_ci	int			raid_disks;
1362306a36Sopenharmony_ci	spinlock_t		device_lock;
1462306a36Sopenharmony_ci	struct list_head	retry_list;
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci	mempool_t		pool;
1762306a36Sopenharmony_ci};
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci/*
2062306a36Sopenharmony_ci * this is our 'private' 'collective' MULTIPATH buffer head.
2162306a36Sopenharmony_ci * it contains information about what kind of IO operations were started
2262306a36Sopenharmony_ci * for this MULTIPATH operation, and about their status:
2362306a36Sopenharmony_ci */
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_cistruct multipath_bh {
2662306a36Sopenharmony_ci	struct mddev			*mddev;
2762306a36Sopenharmony_ci	struct bio		*master_bio;
2862306a36Sopenharmony_ci	struct bio		bio;
2962306a36Sopenharmony_ci	int			path;
3062306a36Sopenharmony_ci	struct list_head	retry_list;
3162306a36Sopenharmony_ci};
3262306a36Sopenharmony_ci#endif
33