]> err.no Git - linux-2.6/blobdiff - include/linux/raid/md_k.h
md: allow devices to be shared between md arrays
[linux-2.6] / include / linux / raid / md_k.h
index 28ac632b42dd128ab79610f6455b4a8362312b9c..5b2102e40286dd40eb3f469774743778a1b301ac 100644 (file)
@@ -81,6 +81,8 @@ struct mdk_rdev_s
 #define        In_sync         2               /* device is in_sync with rest of array */
 #define        WriteMostly     4               /* Avoid reading if at all possible */
 #define        BarriersNotsupp 5               /* BIO_RW_BARRIER is not supported */
+#define        AllReserved     6               /* If whole device is reserved for
+                                        * one array */
 
        int desc_nr;                    /* descriptor index in the superblock */
        int raid_disk;                  /* role of device in array */
@@ -130,6 +132,9 @@ struct mddev_s
                                        minor_version,
                                        patch_version;
        int                             persistent;
+       int                             external;       /* metadata is
+                                                        * managed externally */
+       char                            metadata_type[17]; /* externally set*/
        int                             chunk_size;
        time_t                          ctime, utime;
        int                             level, layout;
@@ -216,6 +221,8 @@ struct mddev_s
        atomic_t                        recovery_active; /* blocks scheduled, but not written */
        wait_queue_head_t               recovery_wait;
        sector_t                        recovery_cp;
+       sector_t                        resync_max;     /* resync should pause
+                                                        * when it gets here */
 
        spinlock_t                      write_lock;
        wait_queue_head_t               sb_wait;        /* for waiting on superblock updates */
@@ -227,7 +234,7 @@ struct mddev_s
        unsigned int                    safemode_delay;
        struct timer_list               safemode_timer;
        atomic_t                        writes_pending; 
-       request_queue_t                 *queue; /* for plugging ... */
+       struct request_queue            *queue; /* for plugging ... */
 
        atomic_t                        write_behind; /* outstanding async IO */
        unsigned int                    max_write_behind; /* 0 = sync */
@@ -265,7 +272,7 @@ struct mdk_personality
        int level;
        struct list_head list;
        struct module *owner;
-       int (*make_request)(request_queue_t *q, struct bio *bio);
+       int (*make_request)(struct request_queue *q, struct bio *bio);
        int (*run)(mddev_t *mddev);
        int (*stop)(mddev_t *mddev);
        void (*status)(struct seq_file *seq, mddev_t *mddev);