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 /managemon.c | |
parent | ca114f3c76374493f0fd64f8ea0a9b96ae9b1dc5 (diff) |
New upstream release.
Diffstat (limited to 'managemon.c')
-rw-r--r-- | managemon.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/managemon.c b/managemon.c index 6d1b3d85..3c1d4cb0 100644 --- a/managemon.c +++ b/managemon.c @@ -115,6 +115,8 @@ static void close_aa(struct active_array *aa) for (d = aa->info.devs; d; d = d->next) { close(d->recovery_fd); close(d->state_fd); + close(d->bb_fd); + close(d->ubb_fd); } if (aa->action_fd >= 0) @@ -433,6 +435,21 @@ static int disk_init_and_add(struct mdinfo *disk, struct mdinfo *clone, close(disk->recovery_fd); return -1; } + disk->bb_fd = sysfs_open2(aa->info.sys_name, disk->sys_name, + "bad_blocks"); + if (disk->bb_fd < 0) { + close(disk->recovery_fd); + close(disk->state_fd); + return -1; + } + disk->ubb_fd = sysfs_open2(aa->info.sys_name, disk->sys_name, + "unacknowledged_bad_blocks"); + if (disk->ubb_fd < 0) { + close(disk->recovery_fd); + close(disk->state_fd); + close(disk->bb_fd); + return -1; + } disk->prev_state = read_dev_state(disk->state_fd); disk->curr_state = disk->prev_state; disk->next = aa->info.devs; |