summaryrefslogtreecommitdiffstats
path: root/Grow.c
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2007-12-14 20:14:57 +1100
committerNeil Brown <neilb@suse.de>2007-12-14 20:14:57 +1100
commit06c7f68e40134cbef3186426ebf63c4f6d4e30f5 (patch)
tree38b8086f035bdab39ade0a725fd8535015ebba7d /Grow.c
parent213ee40bd2d0e09288b629a80fa85816f45fe48b (diff)
downloadmdadm-06c7f68e40134cbef3186426ebf63c4f6d4e30f5.tar.gz
mdadm-06c7f68e40134cbef3186426ebf63c4f6d4e30f5.tar.xz
mdadm-06c7f68e40134cbef3186426ebf63c4f6d4e30f5.zip
Use 'mdinfo' instead of special 'sysdev' structure.
there is needless duplicatiion between mdinfo and sysdev, so discard the latter.
Diffstat (limited to 'Grow.c')
-rw-r--r--Grow.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/Grow.c b/Grow.c
index 3c22741..c02ff80 100644
--- a/Grow.c
+++ b/Grow.c
@@ -436,7 +436,7 @@ int Grow_reshape(char *devname, int fd, int quiet, char *backup_file,
int err;
struct sysarray *sra;
- struct sysdev *sd;
+ struct mdinfo *sd;
if (ioctl(fd, GET_ARRAY_INFO, &array) < 0) {
fprintf(stderr, Name ": %s is not an active md array - aborting\n",
@@ -650,22 +650,25 @@ int Grow_reshape(char *devname, int fd, int quiet, char *backup_file,
fdlist[d] = -1;
d = array.raid_disks;
for (sd = sra->devs; sd; sd=sd->next) {
- if (sd->state & (1<<MD_DISK_FAULTY))
+ if (sd->disk.state & (1<<MD_DISK_FAULTY))
continue;
- if (sd->state & (1<<MD_DISK_SYNC)) {
- char *dn = map_dev(sd->major, sd->minor, 1);
- fdlist[sd->role] = dev_open(dn, O_RDONLY);
- offsets[sd->role] = sd->offset;
- if (fdlist[sd->role] < 0) {
+ if (sd->disk.state & (1<<MD_DISK_SYNC)) {
+ char *dn = map_dev(sd->disk.major,
+ sd->disk.minor, 1);
+ fdlist[sd->disk.raid_disk]
+ = dev_open(dn, O_RDONLY);
+ offsets[sd->disk.raid_disk] = sd->data_offset;
+ if (fdlist[sd->disk.raid_disk] < 0) {
fprintf(stderr, Name ": %s: cannot open component %s\n",
devname, dn?dn:"-unknown-");
goto abort;
}
} else {
/* spare */
- char *dn = map_dev(sd->major, sd->minor, 1);
+ char *dn = map_dev(sd->disk.major,
+ sd->disk.minor, 1);
fdlist[d] = dev_open(dn, O_RDWR);
- offsets[d] = sd->offset;
+ offsets[d] = sd->data_offset;
if (fdlist[d]<0) {
fprintf(stderr, Name ": %s: cannot open component %s\n",
devname, dn?dn:"-unknown");