diff options
author | Dimitri John Ledkov <xnox@ubuntu.com> | 2017-05-12 12:32:07 +0100 |
---|---|---|
committer | Dimitri John Ledkov <xnox@ubuntu.com> | 2017-05-12 12:32:07 +0100 |
commit | 77b19ed5f259bc62680acf2b1a3454baa2472bc5 (patch) | |
tree | 7441d8d057c09e54c8ea23c984f2ccdf22c98649 /Detail.c | |
parent | ca114f3c76374493f0fd64f8ea0a9b96ae9b1dc5 (diff) |
New upstream release.
Diffstat (limited to 'Detail.c')
-rw-r--r-- | Detail.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -130,7 +130,7 @@ int Detail(char *dev, struct context *c) /* This is a subarray of some container. * We want the name of the container, and the member */ - int devid = devnm2devid(st->container_devnm); + dev_t devid = devnm2devid(st->container_devnm); int cfd, err; member = subarray; @@ -323,7 +323,8 @@ int Detail(char *dev, struct context *c) if (disk.major == 0 && disk.minor == 0) continue; if (disk.raid_disk >= 0 && disk.raid_disk < array.raid_disks - && disks[disk.raid_disk*2].state == (1<<MD_DISK_REMOVED)) + && disks[disk.raid_disk*2].state == (1<<MD_DISK_REMOVED) + && ((disk.state & (1<<MD_DISK_JOURNAL)) == 0)) disks[disk.raid_disk*2] = disk; else if (disk.raid_disk >= 0 && disk.raid_disk < array.raid_disks && disks[disk.raid_disk*2+1].state == (1<<MD_DISK_REMOVED) @@ -577,12 +578,12 @@ This is pretty boring char path[200]; char vbuf[1024]; int nlen = strlen(sra->sys_name); - int devid; + dev_t devid; if (de->d_name[0] == '.') continue; sprintf(path, "/sys/block/%s/md/metadata_version", de->d_name); - if (load_sys(path, vbuf) < 0) + if (load_sys(path, vbuf, sizeof(vbuf)) < 0) continue; if (strncmp(vbuf, "external:", 9) != 0 || !is_subarray(vbuf+9) || @@ -657,6 +658,7 @@ This is pretty boring } if (disk.state & (1<<MD_DISK_REMOVED)) printf(" removed"); if (disk.state & (1<<MD_DISK_WRITEMOSTLY)) printf(" writemostly"); + if (disk.state & (1<<MD_DISK_FAILFAST)) printf(" failfast"); if (disk.state & (1<<MD_DISK_JOURNAL)) printf(" journal"); if ((disk.state & ((1<<MD_DISK_ACTIVE)|(1<<MD_DISK_SYNC) |