diff options
author | Neil Brown <neilb@suse.de> | 2007-12-14 20:14:57 +1100 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2007-12-14 20:14:57 +1100 |
commit | 06c7f68e40134cbef3186426ebf63c4f6d4e30f5 (patch) | |
tree | 38b8086f035bdab39ade0a725fd8535015ebba7d /sysfs.c | |
parent | 213ee40bd2d0e09288b629a80fa85816f45fe48b (diff) | |
download | mdadm-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 'sysfs.c')
-rw-r--r-- | sysfs.c | 34 |
1 files changed, 17 insertions, 17 deletions
@@ -47,7 +47,7 @@ void sysfs_free(struct sysarray *sra) if (!sra) return; while (sra->devs) { - struct sysdev *d = sra->devs; + struct mdinfo *d = sra->devs; sra->devs = d->next; free(d); } @@ -66,7 +66,7 @@ struct sysarray *sysfs_read(int fd, int devnum, unsigned long options) char *base; char *dbase; struct sysarray *sra; - struct sysdev *dev; + struct mdinfo *dev; DIR *dir; struct dirent *de; @@ -169,42 +169,42 @@ struct sysarray *sysfs_read(int fd, int devnum, unsigned long options) goto abort; dev->next = sra->devs; sra->devs = dev; - strcpy(dev->name, de->d_name); + strcpy(dev->sys_name, de->d_name); /* Always get slot, major, minor */ strcpy(dbase, "slot"); if (load_sys(fname, buf)) goto abort; - dev->role = strtoul(buf, &ep, 10); - if (*ep) dev->role = -1; + dev->disk.raid_disk = strtoul(buf, &ep, 10); + if (*ep) dev->disk.raid_disk = -1; strcpy(dbase, "block/dev"); if (load_sys(fname, buf)) goto abort; - sscanf(buf, "%d:%d", &dev->major, &dev->minor); + sscanf(buf, "%d:%d", &dev->disk.major, &dev->disk.minor); if (options & GET_OFFSET) { strcpy(dbase, "offset"); if (load_sys(fname, buf)) goto abort; - dev->offset = strtoull(buf, NULL, 0); + dev->data_offset = strtoull(buf, NULL, 0); } if (options & GET_SIZE) { strcpy(dbase, "size"); if (load_sys(fname, buf)) goto abort; - dev->size = strtoull(buf, NULL, 0); + dev->component_size = strtoull(buf, NULL, 0); } if (options & GET_STATE) { - dev->state = 0; + dev->disk.state = 0; strcpy(dbase, "state"); if (load_sys(fname, buf)) goto abort; if (strstr(buf, "in_sync")) - dev->state |= (1<<MD_DISK_SYNC); + dev->disk.state |= (1<<MD_DISK_SYNC); if (strstr(buf, "faulty")) - dev->state |= (1<<MD_DISK_FAULTY); - if (dev->state == 0) + dev->disk.state |= (1<<MD_DISK_FAULTY); + if (dev->disk.state == 0) sra->spares++; } if (options & GET_ERROR) { @@ -251,14 +251,14 @@ unsigned long long get_component_size(int fd) return strtoull(fname, NULL, 10) * 2; } -int sysfs_set_str(struct sysarray *sra, struct sysdev *dev, +int sysfs_set_str(struct sysarray *sra, struct mdinfo *dev, char *name, char *val) { char fname[50]; int n; int fd; sprintf(fname, "/sys/block/%s/md/%s/%s", - sra->name, dev?dev->name:"", name); + sra->name, dev?dev->sys_name:"", name); fd = open(fname, O_WRONLY); if (fd < 0) return -1; @@ -269,7 +269,7 @@ int sysfs_set_str(struct sysarray *sra, struct sysdev *dev, return 0; } -int sysfs_set_num(struct sysarray *sra, struct sysdev *dev, +int sysfs_set_num(struct sysarray *sra, struct mdinfo *dev, char *name, unsigned long long val) { char valstr[50]; @@ -277,7 +277,7 @@ int sysfs_set_num(struct sysarray *sra, struct sysdev *dev, return sysfs_set_str(sra, dev, name, valstr); } -int sysfs_get_ll(struct sysarray *sra, struct sysdev *dev, +int sysfs_get_ll(struct sysarray *sra, struct mdinfo *dev, char *name, unsigned long long *val) { char fname[50]; @@ -286,7 +286,7 @@ int sysfs_get_ll(struct sysarray *sra, struct sysdev *dev, int fd; char *ep; sprintf(fname, "/sys/block/%s/md/%s/%s", - sra->name, dev?dev->name:"", name); + sra->name, dev?dev->sys_name:"", name); fd = open(fname, O_RDONLY); if (fd < 0) return -1; |