summaryrefslogtreecommitdiffstats
path: root/mdadm.h
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2005-05-03 23:44:40 +0000
committerNeil Brown <neilb@suse.de>2005-05-03 23:44:40 +0000
commit82d9eba687c952a9919f756203706285d6c42f07 (patch)
tree53d8a29cc1e532aa0f05f888cfd6603dd9f4715f /mdadm.h
parentf9ce90ba509d0b624cc38635861b9c27550fbefc (diff)
downloadmdadm-82d9eba687c952a9919f756203706285d6c42f07.tar.gz
mdadm-82d9eba687c952a9919f756203706285d6c42f07.tar.xz
mdadm-82d9eba687c952a9919f756203706285d6c42f07.zip
super1
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Fix raid5 creation with new code. Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Diffstat (limited to 'mdadm.h')
-rw-r--r--mdadm.h30
1 files changed, 19 insertions, 11 deletions
diff --git a/mdadm.h b/mdadm.h
index 491d907..d42e853 100644
--- a/mdadm.h
+++ b/mdadm.h
@@ -116,7 +116,7 @@ typedef struct mddev_ident_s {
int level;
unsigned int raid_disks;
unsigned int spare_disks;
- struct superswitch *ss;
+ struct supertype *st;
int autof; /* 1 for normal, 2 for partitioned */
char *spare_group;
@@ -173,17 +173,24 @@ extern struct superswitch {
void (*getinfo_super)(struct mdinfo *info, void *sbv);
int (*update_super)(struct mdinfo *info, void *sbv, char *update, char *devname, int verbose);
__u64 (*event_super)(void *sbv);
- void (*init_super)(void **sbp, mdu_array_info_t *info);
+ int (*init_super)(void **sbp, mdu_array_info_t *info);
void (*add_to_super)(void *sbv, mdu_disk_info_t *dinfo);
int (*store_super)(int fd, void *sbv);
- int (*write_init_super)(void *sbv, mdu_disk_info_t *dinfo, char *devname);
+ int (*write_init_super)(struct supertype *st, void *sbv, mdu_disk_info_t *dinfo, char *devname);
int (*compare_super)(void **firstp, void *secondv);
- int (*load_super)(int fd, void **sbp, char *devname);
- int (*match_metadata_desc)(char *arg);
-} super0, *superlist[];
+ int (*load_super)(struct supertype *st, int fd, void **sbp, char *devname);
+ struct supertype * (*match_metadata_desc)(char *arg);
+ __u64 (*avail_size)(__u64 size);
+ int major;
+} super0, super1, *superlist[];
+
+struct supertype {
+ struct superswitch *ss;
+ int minor_version;
+};
-extern struct superswitch *super_by_version(int vers);
-extern struct superswitch *guess_super(int fd, char *dev);
+extern struct supertype *super_by_version(int vers, int minor);
+extern struct supertype *guess_super(int fd);
extern int Manage_ro(char *devname, int fd, int readonly);
@@ -195,7 +202,7 @@ extern int Manage_subdevs(char *devname, int fd,
extern int Grow_Add_device(char *devname, int fd, char *newdev);
-extern int Assemble(struct superswitch *ss, char *mddev, int mdfd,
+extern int Assemble(struct supertype *st, char *mddev, int mdfd,
mddev_ident_t ident,
char *conffile,
mddev_dev_t devlist,
@@ -208,14 +215,15 @@ extern int Build(char *mddev, int mdfd, int chunk, int level, int layout,
mddev_dev_t devlist, int assume_clean);
-extern int Create(struct superswitch *ss, char *mddev, int mdfd,
+extern int Create(struct supertype *st, char *mddev, int mdfd,
int chunk, int level, int layout, unsigned long size, int raiddisks, int sparedisks,
int subdevs, mddev_dev_t devlist,
int runstop, int verbose, int force);
extern int Detail(char *dev, int brief, int test);
extern int Query(char *dev);
-extern int Examine(mddev_dev_t devlist, int brief, int scan, int SparcAdjust);
+extern int Examine(mddev_dev_t devlist, int brief, int scan, int SparcAdjust,
+ struct supertype *forcest);
extern int Monitor(mddev_dev_t devlist,
char *mailaddr, char *alert_cmd,
int period, int daemonise, int scan, int oneshot,