From 06c7f68e40134cbef3186426ebf63c4f6d4e30f5 Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Fri, 14 Dec 2007 20:14:57 +1100 Subject: Use 'mdinfo' instead of special 'sysdev' structure. there is needless duplicatiion between mdinfo and sysdev, so discard the latter. --- sysfs.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'sysfs.c') diff --git a/sysfs.c b/sysfs.c index 1dbc680..970d211 100644 --- a/sysfs.c +++ b/sysfs.c @@ -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<disk.state |= (1<state |= (1<state == 0) + dev->disk.state |= (1<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; -- cgit