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