#ifndef _MULTIPATH_H #define _MULTIPATH_H #include <linux/raid/md.h> struct multipath_info { mdk_rdev_t *rdev; }; struct multipath_private_data { mddev_t *mddev; struct multipath_info *multipaths; int raid_disks; int working_disks; spinlock_t device_lock; struct list_head retry_list; mempool_t *pool; }; typedef struct multipath_private_data multipath_conf_t; /* * this is the only point in the RAID code where we violate * C type safety. mddev->private is an 'opaque' pointer. */ #define mddev_to_conf(mddev) ((multipath_conf_t *) mddev->private) /* * this is our 'private' 'collective' MULTIPATH buffer head. * it contains information about what kind of IO operations were started * for this MULTIPATH operation, and about their status: */ struct multipath_bh { mddev_t *mddev; struct bio *master_bio; struct bio bio; int path; struct list_head retry_list; }; #endif