Convert a bitmap=none device to clustered
This adds the ability to convert a regular md without bitmap (--bitmap=none) to a clustered device (--bitmap=clustered). To convert a device with --bitmap=internal or --bitmap=external, you have to convert to --bitmap=none and then re-execute the command with --bitmap=clustered. Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com> Signed-off-by: Guoqing Jiang <gqjiang@suse.com> Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
4de9091302
commit
7c25f4d706
10
Grow.c
10
Grow.c
|
@ -330,8 +330,7 @@ int Grow_addbitmap(char *devname, int fd, struct context *c, struct shape *s)
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
pr_err("Internal bitmap already present on %s\n",
|
||||
devname);
|
||||
pr_err("%s bitmap already present on %s\n", s->bitmap_file, devname);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -375,7 +374,8 @@ int Grow_addbitmap(char *devname, int fd, struct context *c, struct shape *s)
|
|||
free(st);
|
||||
return 1;
|
||||
}
|
||||
if (strcmp(s->bitmap_file, "internal") == 0) {
|
||||
if (strcmp(s->bitmap_file, "internal") == 0 ||
|
||||
strcmp(s->bitmap_file, "clustered") == 0) {
|
||||
int rv;
|
||||
int d;
|
||||
int offset_setable = 0;
|
||||
|
@ -384,6 +384,8 @@ int Grow_addbitmap(char *devname, int fd, struct context *c, struct shape *s)
|
|||
pr_err("Internal bitmaps not supported with %s metadata\n", st->ss->name);
|
||||
return 1;
|
||||
}
|
||||
st->nodes = c->nodes;
|
||||
st->cluster_name = c->homecluster;
|
||||
mdi = sysfs_read(fd, NULL, GET_BITMAP_LOCATION);
|
||||
if (mdi)
|
||||
offset_setable = 1;
|
||||
|
@ -426,6 +428,8 @@ int Grow_addbitmap(char *devname, int fd, struct context *c, struct shape *s)
|
|||
rv = sysfs_set_num_signed(mdi, NULL, "bitmap/location",
|
||||
mdi->bitmap_offset);
|
||||
} else {
|
||||
if (strcmp(s->bitmap_file, "clustered") == 0)
|
||||
array.state |= (1<<MD_SB_CLUSTERED);
|
||||
array.state |= (1<<MD_SB_BITMAP_PRESENT);
|
||||
rv = ioctl(fd, SET_ARRAY_INFO, &array);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue