+#ifdef DEBUG
+#define dprintf(fmt, arg...) \
+ fprintf(stderr, fmt, ##arg)
+#else
+#define dprintf(fmt, arg...) \
+ ({ if (0) fprintf(stderr, fmt, ##arg); 0; })
+#endif
enum array_state { clear, inactive, suspended, readonly, read_auto,
clean, active, write_pending, active_idle, bad_word};
enum array_state prev_state, curr_state, next_state;
enum sync_action prev_action, curr_action, next_action;
+ int check_degraded; /* flag set by mon, read by manage */
+
int devnum;
unsigned long long resync_start;
* superswitch. All common code sees them as opaque
* blobs.
*/
-struct metadata_update {
- int len;
- char *buf;
- void *space; /* allocated space that monitor will use */
- struct metadata_update *next;
-};
extern struct metadata_update *update_queue, *update_queue_handled;
#define MD_MAJOR 9
struct mdstat_ent *mdstat_read(int hold, int start);
-extern struct superswitch super_ddf, super_ddf_bvd, super_ddf_svd;
-
extern int exit_now, manager_ready;
+extern int mon_tid, mgr_tid;