[funini.com] -> [kei@sodan] -> Kernel Reading

root/include/linux/raid/multipath.h

/* [<][>][^][v][top][bottom][index][help] */
#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

/* [<][>][^][v][top][bottom][index][help] */

[funini.com] -> [kei@sodan] -> Kernel Reading