3e70c845e2
From: Dan Williams <dan.j.williams@intel.com> Each md_message encapsulates a single command. A command includes an 'action' member which describes what if any data comes after the action. Communication with the monitor involves updating the active_cmd pointer and then writing to mgr_pipe. Pass/fail status is returned via mon_pipe. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
45 lines
1.0 KiB
C
45 lines
1.0 KiB
C
|
|
enum array_state { clear, inactive, suspended, readonly, read_auto,
|
|
clean, active, write_pending, active_idle, bad_word};
|
|
|
|
enum sync_action { idle, reshape, resync, recover, check, repair, bad_action };
|
|
|
|
|
|
struct active_array {
|
|
struct mdinfo info;
|
|
struct supertype *container;
|
|
struct active_array *next, *replaces;
|
|
|
|
int action_fd;
|
|
int sync_pos_fd;
|
|
int resync_start_fd;
|
|
|
|
enum array_state prev_state, curr_state, next_state;
|
|
enum sync_action prev_action, curr_action, next_action;
|
|
|
|
int devnum;
|
|
|
|
unsigned long long sync_pos;
|
|
unsigned long long resync_start;
|
|
};
|
|
|
|
|
|
|
|
#define MD_MAJOR 9
|
|
|
|
extern struct active_array *container;
|
|
extern struct active_array *array_list;
|
|
extern struct active_array *discard_this;
|
|
extern struct active_array *pending_discard;
|
|
extern struct md_generic_cmd *active_cmd;
|
|
|
|
|
|
void do_monitor(struct supertype *container);
|
|
void do_manager(struct supertype *container);
|
|
|
|
int read_dev_state(int fd);
|
|
|
|
struct mdstat_ent *mdstat_read(int hold, int start);
|
|
|
|
extern struct superswitch super_ddf, super_ddf_bvd, super_ddf_svd;
|