]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - mdadm.h
Move code to get_data_disks() function
[thirdparty/mdadm.git] / mdadm.h
diff --git a/mdadm.h b/mdadm.h
index bd3063baf4d25d110d89f352a975525fe82ad35e..f219c959c73915b85fb205f8603d832d9bb63297 100644 (file)
--- a/mdadm.h
+++ b/mdadm.h
@@ -313,6 +313,8 @@ enum special_options {
        RebuildMapOpt,
        InvalidBackup,
        UdevRules,
+       FreezeReshape,
+       Continue,
 };
 
 /* structures read from config file */
@@ -427,6 +429,7 @@ extern void map_add(struct map_ent **melp,
                    int devnum, char *metadata, int uuid[4], char *path);
 extern int map_lock(struct map_ent **melp);
 extern void map_unlock(struct map_ent **melp);
+extern void map_fork(void);
 
 /* various details can be requested */
 enum sysfs_read_flags {
@@ -702,6 +705,12 @@ extern struct superswitch {
         * inter-device dependencies, it should record sufficient details
         * so these can be validated.
         * Both 'size' and '*freesize' are in sectors.  chunk is KiB.
+        * Return value is:
+        *  1: everything is OK
+        *  0: not OK for some reason - if 'verbose', then error was reported.
+        * -1: st->sb was NULL, 'subdev' is a member of a container of this
+        *     types, but array is not acceptable for some reason
+        *     message was reported even if verbose is 0.
         */
        int (*validate_geometry)(struct supertype *st, int level, int layout,
                                 int raiddisks,
@@ -1024,13 +1033,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,
@@ -1038,7 +1051,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,
@@ -1072,7 +1085,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);
@@ -1144,6 +1157,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);
@@ -1151,7 +1165,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,