diff options
author | Artur Paszkiewicz <artur.paszkiewicz@intel.com> | 2017-03-29 11:54:15 +0200 |
---|---|---|
committer | Jes Sorensen <Jes.Sorensen@gmail.com> | 2017-03-29 17:32:15 +0200 |
commit | 5308f11727b889965efe5ac0e854d197c2b51f6d (patch) | |
tree | 9b35204d86ddc3bf3275c123b4a420dda57c02a8 /super0.c | |
parent | Detail: handle non-existent arrays better. (diff) | |
download | mdadm-5308f11727b889965efe5ac0e854d197c2b51f6d.tar.xz mdadm-5308f11727b889965efe5ac0e854d197c2b51f6d.zip |
Generic support for --consistency-policy and PPL
Add a new parameter to mdadm: --consistency-policy=. It determines how
the array maintains consistency in case of unexpected shutdown. This
maps to the md sysfs attribute 'consistency_policy'. It can be used to
create a raid5 array using PPL. Add the necessary plumbing to pass this
option to metadata handlers. The write journal and bitmap
functionalities are treated as different policies, which are implicitly
selected when using --write-journal or --bitmap options.
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@gmail.com>
Diffstat (limited to 'super0.c')
-rw-r--r-- | super0.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -725,7 +725,7 @@ static int update_super0(struct supertype *st, struct mdinfo *info, * We use the first 8 bytes (64bits) of the sha1 of the host name */ static int init_super0(struct supertype *st, mdu_array_info_t *info, - unsigned long long size, char *ignored_name, + struct shape *s, char *ignored_name, char *homehost, int *uuid, unsigned long long data_offset) { @@ -764,8 +764,8 @@ static int init_super0(struct supertype *st, mdu_array_info_t *info, sb->gvalid_words = 0; /* ignored */ sb->ctime = time(0); sb->level = info->level; - sb->size = size; - if (size != (unsigned long long)sb->size) + sb->size = s->size; + if (s->size != (unsigned long long)sb->size) return 0; sb->nr_disks = info->nr_disks; sb->raid_disks = info->raid_disks; @@ -1267,7 +1267,7 @@ static int validate_geometry0(struct supertype *st, int level, int *chunk, unsigned long long size, unsigned long long data_offset, char *subdev, unsigned long long *freesize, - int verbose) + int consistency_policy, int verbose) { unsigned long long ldsize; int fd; |