diff options
-rwxr-xr-x | mdadm.h | 4 | ||||
-rw-r--r-- | sysfs.c | 7 |
2 files changed, 11 insertions, 0 deletions
@@ -305,6 +305,9 @@ struct mdinfo { #define DS_REMOVE 1024 #define DS_UNBLOCK 2048 int prev_state, curr_state, next_state; + + /* info read from sysfs */ + char sysfs_array_state[20]; }; struct createinfo { @@ -588,6 +591,7 @@ enum sysfs_read_flags { GET_SIZE = (1 << 22), GET_STATE = (1 << 23), GET_ERROR = (1 << 24), + GET_ARRAY_STATE = (1 << 25), }; /* If fd >= 0, get the array it is open on, @@ -230,6 +230,13 @@ struct mdinfo *sysfs_read(int fd, char *devnm, unsigned long options) goto abort; } + if (options & GET_ARRAY_STATE) { + strcpy(base, "array_state"); + if (load_sys(fname, sra->sysfs_array_state)) + goto abort; + } else + sra->sysfs_array_state[0] = 0; + if (! (options & GET_DEVS)) return sra; |