Subversion Repositories shark

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
423 giacomo 1
#ifndef _MULTIPATH_H
2
#define _MULTIPATH_H
3
 
4
#include <linux/raid/md.h>
5
 
6
struct multipath_info {
7
        mdk_rdev_t      *rdev;
8
};
9
 
10
struct multipath_private_data {
11
        mddev_t                 *mddev;
12
        struct multipath_info   *multipaths;
13
        int                     raid_disks;
14
        int                     working_disks;
15
        spinlock_t              device_lock;
16
 
17
        mempool_t               *pool;
18
};
19
 
20
typedef struct multipath_private_data multipath_conf_t;
21
 
22
/*
23
 * this is the only point in the RAID code where we violate
24
 * C type safety. mddev->private is an 'opaque' pointer.
25
 */
26
#define mddev_to_conf(mddev) ((multipath_conf_t *) mddev->private)
27
 
28
/*
29
 * this is our 'private' 'collective' MULTIPATH buffer head.
30
 * it contains information about what kind of IO operations were started
31
 * for this MULTIPATH operation, and about their status:
32
 */
33
 
34
struct multipath_bh {
35
        mddev_t                 *mddev;
36
        struct bio              *master_bio;
37
        struct bio              bio;
38
        int                     path;
39
        struct multipath_bh     *next_mp; /* next for retry */
40
};
41
#endif