Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
[pandora-kernel.git] / drivers / md / raid10.h
index 4c4942a..135b1b0 100644 (file)
@@ -14,6 +14,7 @@ struct mirror_info {
 struct r10conf {
        struct mddev            *mddev;
        struct mirror_info      *mirrors;
+       struct mirror_info      *mirrors_new, *mirrors_old;
        spinlock_t              device_lock;
 
        /* geometry */
@@ -34,13 +35,17 @@ struct r10conf {
                                               */
                int             chunk_shift; /* shift from chunks to sectors */
                sector_t        chunk_mask;
-       } geo;
+       } prev, geo;
        int                     copies;       /* near_copies * far_copies.
                                               * must be <= raid_disks
                                               */
 
        sector_t                dev_sectors;  /* temp copy of
                                               * mddev->dev_sectors */
+       sector_t                reshape_progress;
+       sector_t                reshape_safe;
+       unsigned long           reshape_checkpoint;
+       sector_t                offset_diff;
 
        struct list_head        retry_list;
        /* queue pending writes and submit them on unplug */
@@ -137,6 +142,7 @@ enum r10bio_state {
        R10BIO_Uptodate,
        R10BIO_IsSync,
        R10BIO_IsRecover,
+       R10BIO_IsReshape,
        R10BIO_Degraded,
 /* Set ReadError on bios that experience a read error
  * so that raid10d knows what to do with them.
@@ -147,5 +153,10 @@ enum r10bio_state {
  */
        R10BIO_MadeGood,
        R10BIO_WriteError,
+/* During a reshape we might be performing IO on the
+ * 'previous' part of the array, in which case this
+ * flag is set
+ */
+       R10BIO_Previous,
 };
 #endif