[go: nahoru, domu]

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