Merge branch 'work.mount-base' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[linux-2.6-microblaze.git] / drivers / md / raid0.h
index 540e65d..3816e54 100644 (file)
@@ -8,11 +8,25 @@ struct strip_zone {
        int      nb_dev;        /* # of devices attached to the zone */
 };
 
+/* Linux 3.14 (20d0189b101) made an unintended change to
+ * the RAID0 layout for multi-zone arrays (where devices aren't all
+ * the same size.
+ * RAID0_ORIG_LAYOUT restores the original layout
+ * RAID0_ALT_MULTIZONE_LAYOUT uses the altered layout
+ * The layouts are identical when there is only one zone (all
+ * devices the same size).
+ */
+
+enum r0layout {
+       RAID0_ORIG_LAYOUT = 1,
+       RAID0_ALT_MULTIZONE_LAYOUT = 2,
+};
 struct r0conf {
        struct strip_zone       *strip_zone;
        struct md_rdev          **devlist; /* lists of rdevs, pointed to
                                            * by strip_zone->dev */
        int                     nr_strip_zones;
+       enum r0layout           layout;
 };
 
 #endif