]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - mdadm.h
Incremental: Use md_array_active() where applicable
[thirdparty/mdadm.git] / mdadm.h
diff --git a/mdadm.h b/mdadm.h
index d222cc3b5e5f8fd162452e1a6eb2b84829a70ca4..1bbacfe9e9161d278a1107f1b402ba2cec6f8089 100644 (file)
--- a/mdadm.h
+++ b/mdadm.h
@@ -301,6 +301,7 @@ struct mdinfo {
        };
        long                    bitmap_offset;  /* 0 == none, 1 == a file */
        unsigned int            ppl_size;
+       int                     ppl_offset;
        unsigned long long      ppl_sector;
        unsigned long           safe_mode_delay; /* ms delay to mark clean */
        int                     new_level, delta_disks, new_layout, new_chunk;
@@ -334,8 +335,18 @@ struct mdinfo {
        int prev_state, curr_state, next_state;
 
        /* info read from sysfs */
-       char            sysfs_array_state[20];
-
+       enum {
+               ARRAY_CLEAR,
+               ARRAY_INACTIVE,
+               ARRAY_SUSPENDED,
+               ARRAY_READONLY,
+               ARRAY_READ_AUTO,
+               ARRAY_CLEAN,
+               ARRAY_ACTIVE,
+               ARRAY_WRITE_PENDING,
+               ARRAY_ACTIVE_IDLE,
+               ARRAY_UNKNOWN_STATE,
+       } array_state;
        struct md_bb bb;
 };
 
@@ -638,7 +649,7 @@ enum sysfs_read_flags {
  * else use devnm.
  */
 extern int sysfs_open(char *devnm, char *devname, char *attr);
-extern void sysfs_init(struct mdinfo *mdi, int fd, char *devnm);
+extern int sysfs_init(struct mdinfo *mdi, int fd, char *devnm);
 extern void sysfs_init_dev(struct mdinfo *mdi, unsigned long devid);
 extern void sysfs_free(struct mdinfo *sra);
 extern struct mdinfo *sysfs_read(int fd, char *devnm, unsigned long options);
@@ -715,7 +726,8 @@ extern int restore_stripes(int *dest, unsigned long long *offsets,
 
 extern char *map_num(mapping_t *map, int num);
 extern int map_name(mapping_t *map, char *name);
-extern mapping_t r5layout[], r6layout[], pers[], modes[], faultylayout[], consistency_policies[];
+extern mapping_t r5layout[], r6layout[], pers[], modes[], faultylayout[];
+extern mapping_t consistency_policies[], sysfs_array_states[];
 
 extern char *map_dev_preferred(int major, int minor, int create,
                               char *prefer);
@@ -1330,6 +1342,8 @@ extern int Grow_restart(struct supertype *st, struct mdinfo *info,
 extern int Grow_continue(int mdfd, struct supertype *st,
                         struct mdinfo *info, char *backup_file,
                         int forked, int freeze_reshape);
+extern int Grow_consistency_policy(char *devname, int fd,
+                                  struct context *c, struct shape *s);
 
 extern int restore_backup(struct supertype *st,
                          struct mdinfo *content,
@@ -1401,7 +1415,10 @@ extern int Dump_metadata(char *dev, char *dir, struct context *c,
 extern int Restore_metadata(char *dev, char *dir, struct context *c,
                            struct supertype *st, int only);
 
-extern int md_get_version(int fd);
+int md_array_active(int fd);
+int md_get_array_info(int fd, struct mdu_array_info_s *array);
+int md_set_array_info(int fd, struct mdu_array_info_s *array);
+int md_get_disk_info(int fd, struct mdu_disk_info_s *disk);
 extern int get_linux_version(void);
 extern int mdadm_version(char *version);
 extern unsigned long long parse_size(char *size);
@@ -1468,7 +1485,6 @@ extern char *fname_from_uuid(struct supertype *st,
 extern unsigned long calc_csum(void *super, int bytes);
 extern int enough(int level, int raid_disks, int layout, int clean,
                   char *avail);
-extern int enough_fd(int fd);
 extern int ask(char *mesg);
 extern unsigned long long get_component_size(int fd);
 extern void remove_partitions(int fd);