multipath.h revision 69724e28ca99990a8f0b5370bb946d7704936d67
11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef _MULTIPATH_H 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define _MULTIPATH_H 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct multipath_info { 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds struct md_rdev *rdev; 65924486dc0f205ebc2bbf4c262eec902ff38e802Russell King}; 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct mpconf { 95924486dc0f205ebc2bbf4c262eec902ff38e802Russell King struct mddev *mddev; 105924486dc0f205ebc2bbf4c262eec902ff38e802Russell King struct multipath_info *multipaths; 115924486dc0f205ebc2bbf4c262eec902ff38e802Russell King int raid_disks; 125924486dc0f205ebc2bbf4c262eec902ff38e802Russell King spinlock_t device_lock; 135924486dc0f205ebc2bbf4c262eec902ff38e802Russell King struct list_head retry_list; 145924486dc0f205ebc2bbf4c262eec902ff38e802Russell King 151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds mempool_t *pool; 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * this is our 'private' 'collective' MULTIPATH buffer head. 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * it contains information about what kind of IO operations were started 211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * for this MULTIPATH operation, and about their status: 221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct multipath_bh { 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds struct mddev *mddev; 261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds struct bio *master_bio; 271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds struct bio bio; 281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int path; 291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds struct list_head retry_list; 301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds