1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef _MULTIPATH_H 3*4882a593Smuzhiyun #define _MULTIPATH_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun struct multipath_info { 6*4882a593Smuzhiyun struct md_rdev *rdev; 7*4882a593Smuzhiyun }; 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun struct mpconf { 10*4882a593Smuzhiyun struct mddev *mddev; 11*4882a593Smuzhiyun struct multipath_info *multipaths; 12*4882a593Smuzhiyun int raid_disks; 13*4882a593Smuzhiyun spinlock_t device_lock; 14*4882a593Smuzhiyun struct list_head retry_list; 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun mempool_t pool; 17*4882a593Smuzhiyun }; 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun /* 20*4882a593Smuzhiyun * this is our 'private' 'collective' MULTIPATH buffer head. 21*4882a593Smuzhiyun * it contains information about what kind of IO operations were started 22*4882a593Smuzhiyun * for this MULTIPATH operation, and about their status: 23*4882a593Smuzhiyun */ 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun struct multipath_bh { 26*4882a593Smuzhiyun struct mddev *mddev; 27*4882a593Smuzhiyun struct bio *master_bio; 28*4882a593Smuzhiyun struct bio bio; 29*4882a593Smuzhiyun int path; 30*4882a593Smuzhiyun struct list_head retry_list; 31*4882a593Smuzhiyun }; 32*4882a593Smuzhiyun #endif 33