From ba7eb04f71b0f5add796bd94319d1a0671b566de Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Sat, 12 Jul 2008 20:27:39 +1000 Subject: Remove silly convention that major='-1' means 'zero superblock'. Use 'info pointer is NULL' instead. --- Create.c | 1 - Kill.c | 4 +--- super-ddf.c | 16 ++++++---------- super0.c | 2 +- super1.c | 2 +- 5 files changed, 9 insertions(+), 16 deletions(-) diff --git a/Create.c b/Create.c index 71871f6..fe93238 100644 --- a/Create.c +++ b/Create.c @@ -487,7 +487,6 @@ int Create(struct supertype *st, char *mddev, int mdfd, + info.array.failed_disks; info.array.layout = layout; info.array.chunk_size = chunk*1024; - info.array.major_version = 0; /* Flag to say "not zeroing superblock" */ if (name == NULL || *name == 0) { /* base name on mddev */ diff --git a/Kill.c b/Kill.c index 5b25487..eb74754 100644 --- a/Kill.c +++ b/Kill.c @@ -63,10 +63,8 @@ int Kill(char *dev, int force, int quiet, int noexcl) if (force && rv >= 2) rv = 0; /* ignore bad data in superblock */ if (rv== 0 || (force && rv >= 2)) { - mdu_array_info_t info; - info.major_version = -1; /* zero superblock */ st->ss->free_super(st); - st->ss->init_super(st, &info, 0, "", NULL, NULL); + st->ss->init_super(st, NULL, 0, "", NULL, NULL); if (st->ss->store_super(st, fd)) { if (!quiet) fprintf(stderr, Name ": Could not zero superblock on %s\n", diff --git a/super-ddf.c b/super-ddf.c index a547006..cfa79c5 100644 --- a/super-ddf.c +++ b/super-ddf.c @@ -1455,6 +1455,11 @@ static int init_super_ddf(struct supertype *st, struct phys_disk *pd; struct virtual_disk *vd; + if (!info) { + st->sb = NULL; + return 0; + } + ddf = malloc(sizeof(*ddf)); memset(ddf, 0, sizeof(*ddf)); ddf->dlist = NULL; /* no physical disks yet */ @@ -2558,15 +2563,6 @@ static struct mdinfo *container_content_ddf(struct supertype *st) return rest; } -static int init_zero_ddf(struct supertype *st, - mdu_array_info_t *info, - unsigned long long size, char *name, - char *homehost, int *uuid) -{ - st->sb = NULL; - return 0; -} - static int store_zero_ddf(struct supertype *st, int fd) { unsigned long long dsize; @@ -3115,7 +3111,7 @@ struct superswitch super_ddf = { .compare_super = compare_super_ddf, .load_super = load_super_ddf, - .init_super = init_zero_ddf, + .init_super = init_super_ddf, .store_super = store_zero_ddf, .free_super = free_super_ddf, .match_metadata_desc = match_metadata_desc_ddf, diff --git a/super0.c b/super0.c index 27999d9..1e06375 100644 --- a/super0.c +++ b/super0.c @@ -559,7 +559,7 @@ static int init_super0(struct supertype *st, mdu_array_info_t *info, memset(sb, 0, MD_SB_BYTES + sizeof(bitmap_super_t)); st->sb = sb; - if (info->major_version == -1) { + if (info == NULL) { /* zeroing the superblock */ return 0; } diff --git a/super1.c b/super1.c index bd9d1c9..9c712fc 100644 --- a/super1.c +++ b/super1.c @@ -697,7 +697,7 @@ static int init_super1(struct supertype *st, mdu_array_info_t *info, memset(sb, 0, 1024); st->sb = sb; - if (info->major_version == -1) { + if (info == NULL) { /* zeroing superblock */ return 0; } -- cgit