vserver 1.9.5.x5
[linux-2.6.git] / include / linux / raid / md_k.h
index 945346e..c9a0d40 100644 (file)
 #define MULTIPATH         7UL
 #define RAID6            8UL
 #define        RAID10            9UL
-#define MAX_PERSONALITY   10UL
+#define FAULTY           10UL
+#define MAX_PERSONALITY   11UL
 
 #define        LEVEL_MULTIPATH         (-4)
 #define        LEVEL_LINEAR            (-1)
+#define        LEVEL_FAULTY            (-5)
 
 #define MaxSector (~(sector_t)0)
 #define MD_THREAD_NAME_MAX 14
@@ -36,6 +38,7 @@
 static inline int pers_to_level (int pers)
 {
        switch (pers) {
+               case FAULTY:            return LEVEL_FAULTY;
                case MULTIPATH:         return LEVEL_MULTIPATH;
                case HSM:               return -3;
                case TRANSLUCENT:       return -2;
@@ -53,6 +56,7 @@ static inline int pers_to_level (int pers)
 static inline int level_to_pers (int level)
 {
        switch (level) {
+               case LEVEL_FAULTY: return FAULTY;
                case LEVEL_MULTIPATH: return MULTIPATH;
                case -3: return HSM;
                case -2: return TRANSLUCENT;
@@ -290,6 +294,7 @@ struct mdk_personality_s
        int (*sync_request)(mddev_t *mddev, sector_t sector_nr, int go_faster);
        int (*resize) (mddev_t *mddev, sector_t sectors);
        int (*reshape) (mddev_t *mddev, int raid_disks);
+       int (*reconfig) (mddev_t *mddev, int layout, int chunk_size);
 };