]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - mdadm.h
imsm: FIX: Correct ords merging in end_migration()
[thirdparty/mdadm.git] / mdadm.h
diff --git a/mdadm.h b/mdadm.h
index 9165f7ad4eaea5c16bdfd1df72401e9a2daa3cba..1351d420cffb71c8b4c63bb98d2a5080ffe6caab 100644 (file)
--- a/mdadm.h
+++ b/mdadm.h
@@ -194,8 +194,18 @@ struct mdinfo {
        unsigned long long      custom_array_size; /* size for non-default sized
                                                    * arrays (in sectors)
                                                    */
+#define NO_RESHAPE             0
+#define VOLUME_RESHAPE         1
+#define CONTAINER_RESHAPE      2
        int                     reshape_active;
        unsigned long long      reshape_progress;
+       int                     recovery_blocked; /* for external metadata it
+                                                  * indicates that there is
+                                                  * reshape in progress in
+                                                  * container,
+                                                  * for native metadata it is
+                                                  * reshape_active field mirror
+                                                  */
        union {
                unsigned long long resync_start; /* per-array resync position */
                unsigned long long recovery_start; /* per-device rebuild position */
@@ -313,6 +323,8 @@ enum special_options {
        RebuildMapOpt,
        InvalidBackup,
        UdevRules,
+       FreezeReshape,
+       Continue,
 };
 
 /* structures read from config file */
@@ -1031,13 +1043,17 @@ extern int Grow_reshape(char *devname, int fd, int quiet, char *backup_file,
 extern int Grow_restart(struct supertype *st, struct mdinfo *info,
                        int *fdlist, int cnt, char *backup_file, int verbose);
 extern int Grow_continue(int mdfd, struct supertype *st,
-                        struct mdinfo *info, char *backup_file);
+                        struct mdinfo *info, char *backup_file,
+                        int freeze_reshape);
+
 extern int restore_backup(struct supertype *st,
                          struct mdinfo *content,
                          int working_disks,
                          int spares,
                          char *backup_file,
                          int verbose);
+extern int Grow_continue_command(char *devname, int fd,
+                                char *backup_file, int verbose);
 
 extern int Assemble(struct supertype *st, char *mddev,
                    struct mddev_ident *ident,
@@ -1045,7 +1061,7 @@ extern int Assemble(struct supertype *st, char *mddev,
                    char *backup_file, int invalid_backup,
                    int readonly, int runstop,
                    char *update, char *homehost, int require_homehost,
-                   int verbose, int force);
+                   int verbose, int force, int freeze_reshape);
 
 extern int Build(char *mddev, int chunk, int level, int layout,
                 int raiddisks, struct mddev_dev *devlist, int assume_clean,
@@ -1079,7 +1095,7 @@ extern int WaitClean(char *dev, int sock, int verbose);
 
 extern int Incremental(char *devname, int verbose, int runstop,
                       struct supertype *st, char *homehost, int require_homehost,
-                      int autof);
+                      int autof, int freeze_reshape);
 extern void RebuildMap(void);
 extern int IncrementalScan(int verbose);
 extern int IncrementalRemove(char *devname, char *path, int verbose);
@@ -1129,8 +1145,12 @@ extern char *conf_get_homehost(int *require_homehostp);
 extern char *conf_line(FILE *file);
 extern char *conf_word(FILE *file, int allow_key);
 extern int conf_name_is_free(char *name);
+extern int conf_verify_devnames(struct mddev_ident *array_list);
 extern int devname_matches(char *name, char *match);
-extern struct mddev_ident *conf_match(struct mdinfo *info, struct supertype *st);
+extern struct mddev_ident *conf_match(struct supertype *st,
+                                     struct mdinfo *info,
+                                     char *devname,
+                                     int verbose, int *rvp);
 extern int experimental(void);
 
 extern void free_line(char *line);
@@ -1151,6 +1171,7 @@ extern unsigned long long get_component_size(int fd);
 extern void remove_partitions(int fd);
 extern int test_partition(int fd);
 extern int test_partition_from_id(dev_t id);
+extern int get_data_disks(int level, int layout, int raid_disks);
 extern unsigned long long calc_array_size(int level, int raid_disks, int layout,
                                   int chunksize, unsigned long long devsize);
 extern int flush_metadata_updates(struct supertype *st);
@@ -1158,7 +1179,7 @@ extern void append_metadata_update(struct supertype *st, void *buf, int len);
 extern int assemble_container_content(struct supertype *st, int mdfd,
                                      struct mdinfo *content, int runstop,
                                      char *chosen_name, int verbose,
-                                     char *backup_file);
+                                     char *backup_file, int freeze_reshape);
 extern struct mdinfo *container_choose_spares(struct supertype *st,
                                              unsigned long long min_size,
                                              struct domainlist *domlist,