mddev
Regular
4.4
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
int ready;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time_t ctime;
time_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
atomic_t writes_pending;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
struct attribute_group *to_remove;
struct bio_set *bio_set;
struct bio *flush_bio;
atomic_t flush_pending;
struct work_struct flush_work;
struct work_struct event_work;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
};
4.8
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
atomic_t writes_pending;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
struct attribute_group *to_remove;
struct bio_set *bio_set;
struct bio *flush_bio;
atomic_t flush_pending;
struct work_struct flush_work;
struct work_struct event_work;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
};
4.10
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
atomic_t writes_pending;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
struct attribute_group *to_remove;
struct bio_set *bio_set;
struct bio *flush_bio;
atomic_t flush_pending;
struct work_struct flush_work;
struct work_struct event_work;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
};
4.13
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
struct attribute_group *to_remove;
struct bio_set *bio_set;
struct bio_set *sync_set;
struct bio *flush_bio;
atomic_t flush_pending;
struct work_struct flush_work;
struct work_struct event_work;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
};
4.15
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
struct attribute_group *to_remove;
struct bio_set *bio_set;
struct bio_set *sync_set;
struct bio *flush_bio;
atomic_t flush_pending;
struct work_struct flush_work;
struct work_struct event_work;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
};
4.18
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
struct attribute_group *to_remove;
struct bio_set bio_set;
struct bio_set sync_set;
mempool_t *flush_pool;
mempool_t *flush_bio_pool;
struct work_struct event_work;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
bool has_superblocks;
};
5.0
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
struct attribute_group *to_remove;
struct bio_set bio_set;
struct bio_set sync_set;
mempool_t *flush_pool;
mempool_t *flush_bio_pool;
struct work_struct event_work;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
bool has_superblocks;
};
5.3
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
struct attribute_group *to_remove;
struct bio_set bio_set;
struct bio_set sync_set;
struct bio *flush_bio;
atomic_t flush_pending;
ktime_t start_flush;
ktime_t last_flush;
struct work_struct flush_work;
struct work_struct event_work;
mempool_t *wb_info_pool;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
bool has_superblocks;
};
5.4
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
struct attribute_group *to_remove;
struct bio_set bio_set;
struct bio_set sync_set;
struct bio *flush_bio;
atomic_t flush_pending;
ktime_t start_flush;
ktime_t last_flush;
struct work_struct flush_work;
struct work_struct event_work;
mempool_t *wb_info_pool;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
bool has_superblocks;
bool fail_last_dev;
};
5.8
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
struct attribute_group *to_remove;
struct bio_set bio_set;
struct bio_set sync_set;
mempool_t md_io_pool;
struct bio *flush_bio;
atomic_t flush_pending;
ktime_t start_flush;
ktime_t last_flush;
struct work_struct flush_work;
struct work_struct event_work;
mempool_t *serial_info_pool;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
unsigned int noio_flag;
bool has_superblocks;
bool fail_last_dev;
bool serialize_policy;
};
5.11
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct kernfs_node *sysfs_completed;
struct kernfs_node *sysfs_degraded;
struct kernfs_node *sysfs_level;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
struct attribute_group *to_remove;
struct bio_set bio_set;
struct bio_set sync_set;
mempool_t md_io_pool;
struct bio *flush_bio;
atomic_t flush_pending;
ktime_t start_flush;
ktime_t prev_flush_start;
struct work_struct flush_work;
struct work_struct event_work;
mempool_t *serial_info_pool;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
unsigned int noio_flag;
bool has_superblocks;
bool fail_last_dev;
bool serialize_policy;
};
5.13
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct kernfs_node *sysfs_completed;
struct kernfs_node *sysfs_degraded;
struct kernfs_node *sysfs_level;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
struct attribute_group *to_remove;
struct bio_set bio_set;
struct bio_set sync_set;
struct bio *flush_bio;
atomic_t flush_pending;
ktime_t start_flush;
ktime_t prev_flush_start;
struct work_struct flush_work;
struct work_struct event_work;
mempool_t *serial_info_pool;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
unsigned int noio_flag;
bool has_superblocks;
bool fail_last_dev;
bool serialize_policy;
};
5.15
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct kernfs_node *sysfs_completed;
struct kernfs_node *sysfs_degraded;
struct kernfs_node *sysfs_level;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
const struct attribute_group *to_remove;
struct bio_set bio_set;
struct bio_set sync_set;
struct bio_set io_acct_set;
struct bio *flush_bio;
atomic_t flush_pending;
ktime_t start_flush;
ktime_t prev_flush_start;
struct work_struct flush_work;
struct work_struct event_work;
mempool_t *serial_info_pool;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
unsigned int noio_flag;
bool has_superblocks;
bool fail_last_dev;
bool serialize_policy;
};
5.19
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct kernfs_node *sysfs_completed;
struct kernfs_node *sysfs_degraded;
struct kernfs_node *sysfs_level;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
const struct attribute_group *to_remove;
struct bio_set bio_set;
struct bio_set sync_set;
struct bio_set io_acct_set;
struct bio *flush_bio;
atomic_t flush_pending;
ktime_t start_flush;
ktime_t prev_flush_start;
struct work_struct flush_work;
struct work_struct event_work;
mempool_t *serial_info_pool;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
unsigned int noio_flag;
bool has_superblocks;
bool fail_last_dev;
bool serialize_policy;
};
6.2
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct kernfs_node *sysfs_completed;
struct kernfs_node *sysfs_degraded;
struct kernfs_node *sysfs_level;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
const struct attribute_group *to_remove;
struct bio_set bio_set;
struct bio_set sync_set;
struct bio_set io_acct_set;
struct bio *flush_bio;
atomic_t flush_pending;
ktime_t start_flush;
ktime_t prev_flush_start;
struct work_struct flush_work;
struct work_struct event_work;
mempool_t *serial_info_pool;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
unsigned int noio_flag;
bool has_superblocks;
bool fail_last_dev;
bool serialize_policy;
};
6.5
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
struct percpu_ref active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct kernfs_node *sysfs_completed;
struct kernfs_node *sysfs_degraded;
struct kernfs_node *sysfs_level;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
const struct attribute_group *to_remove;
struct bio_set bio_set;
struct bio_set sync_set;
struct bio_set io_acct_set;
struct bio *flush_bio;
atomic_t flush_pending;
ktime_t start_flush;
ktime_t prev_flush_start;
struct work_struct flush_work;
struct work_struct event_work;
mempool_t *serial_info_pool;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
unsigned int noio_flag;
struct list_head deleting;
bool has_superblocks;
bool fail_last_dev;
bool serialize_policy;
};
6.8
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
struct mutex suspend_mutex;
struct percpu_ref active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct kernfs_node *sysfs_completed;
struct kernfs_node *sysfs_degraded;
struct kernfs_node *sysfs_level;
struct work_struct del_work;
struct work_struct sync_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
const struct attribute_group *to_remove;
struct bio_set bio_set;
struct bio_set sync_set;
struct bio_set io_clone_set;
struct bio *flush_bio;
atomic_t flush_pending;
ktime_t start_flush;
ktime_t prev_flush_start;
struct work_struct flush_work;
struct work_struct event_work;
mempool_t *serial_info_pool;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
unsigned int noio_flag;
struct list_head deleting;
struct mutex sync_mutex;
atomic_t sync_seq;
bool has_superblocks;
bool fail_last_dev;
bool serialize_policy;
};
arm64
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
struct attribute_group *to_remove;
struct bio_set bio_set;
struct bio_set sync_set;
struct bio *flush_bio;
atomic_t flush_pending;
ktime_t start_flush;
ktime_t last_flush;
struct work_struct flush_work;
struct work_struct event_work;
mempool_t *wb_info_pool;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
bool has_superblocks;
bool fail_last_dev;
};
armhf
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
struct attribute_group *to_remove;
struct bio_set bio_set;
struct bio_set sync_set;
struct bio *flush_bio;
atomic_t flush_pending;
ktime_t start_flush;
ktime_t last_flush;
struct work_struct flush_work;
struct work_struct event_work;
mempool_t *wb_info_pool;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
bool has_superblocks;
bool fail_last_dev;
};
ppc64el
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
struct attribute_group *to_remove;
struct bio_set bio_set;
struct bio_set sync_set;
struct bio *flush_bio;
atomic_t flush_pending;
ktime_t start_flush;
ktime_t last_flush;
struct work_struct flush_work;
struct work_struct event_work;
mempool_t *wb_info_pool;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
bool has_superblocks;
bool fail_last_dev;
};
riscv64
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
struct attribute_group *to_remove;
struct bio_set bio_set;
struct bio_set sync_set;
struct bio *flush_bio;
atomic_t flush_pending;
ktime_t start_flush;
ktime_t last_flush;
struct work_struct flush_work;
struct work_struct event_work;
mempool_t *wb_info_pool;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
bool has_superblocks;
bool fail_last_dev;
};
aws
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
struct attribute_group *to_remove;
struct bio_set bio_set;
struct bio_set sync_set;
struct bio *flush_bio;
atomic_t flush_pending;
ktime_t start_flush;
ktime_t last_flush;
struct work_struct flush_work;
struct work_struct event_work;
mempool_t *wb_info_pool;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
bool has_superblocks;
bool fail_last_dev;
};
azure
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
struct attribute_group *to_remove;
struct bio_set bio_set;
struct bio_set sync_set;
struct bio *flush_bio;
atomic_t flush_pending;
ktime_t start_flush;
ktime_t last_flush;
struct work_struct flush_work;
struct work_struct event_work;
mempool_t *wb_info_pool;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
bool has_superblocks;
bool fail_last_dev;
};
gcp
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
struct attribute_group *to_remove;
struct bio_set bio_set;
struct bio_set sync_set;
struct bio *flush_bio;
atomic_t flush_pending;
ktime_t start_flush;
ktime_t last_flush;
struct work_struct flush_work;
struct work_struct event_work;
mempool_t *wb_info_pool;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
bool has_superblocks;
bool fail_last_dev;
};
lowlatency
: ✅struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
long unsigned int flags;
long unsigned int sb_flags;
int suspended;
atomic_t active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread *thread;
struct md_thread *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
long unsigned int resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
long unsigned int recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct work_struct del_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct request_queue *queue;
struct bitmap *bitmap;
struct (anon) bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
struct attribute_group *to_remove;
struct bio_set bio_set;
struct bio_set sync_set;
struct bio *flush_bio;
atomic_t flush_pending;
ktime_t start_flush;
ktime_t last_flush;
struct work_struct flush_work;
struct work_struct event_work;
mempool_t *wb_info_pool;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
bool has_superblocks;
bool fail_last_dev;
};
Regular
4.4
and 4.8
⚠️unsigned int good_device_nr
int ready
time_t ctime
➡️ time64_t ctime
time_t utime
➡️ time64_t utime
4.8
and 4.10
⚠️long unsigned int sb_flags
4.10
and 4.13
⚠️int sync_checkers
struct bio_set *sync_set
atomic_t writes_pending
➡️ struct percpu_ref writes_pending
4.13
and 4.15
✅
4.15
and 4.18
⚠️mempool_t *flush_pool
mempool_t *flush_bio_pool
bool has_superblocks
struct bio *flush_bio
atomic_t flush_pending
struct work_struct flush_work
struct bio_set *bio_set
➡️ struct bio_set bio_set
struct bio_set *sync_set
➡️ struct bio_set sync_set
4.18
and 5.0
✅
5.0
and 5.3
⚠️struct bio *flush_bio
atomic_t flush_pending
ktime_t start_flush
ktime_t last_flush
struct work_struct flush_work
mempool_t *wb_info_pool
mempool_t *flush_pool
mempool_t *flush_bio_pool
5.3
and 5.4
⚠️bool fail_last_dev
5.4
and 5.8
⚠️mempool_t md_io_pool
mempool_t *serial_info_pool
unsigned int noio_flag
bool serialize_policy
mempool_t *wb_info_pool
5.8
and 5.11
⚠️struct kernfs_node *sysfs_completed
struct kernfs_node *sysfs_degraded
struct kernfs_node *sysfs_level
ktime_t prev_flush_start
ktime_t last_flush
5.11
and 5.13
⚠️mempool_t md_io_pool
5.13
and 5.15
⚠️struct bio_set io_acct_set
struct attribute_group *to_remove
➡️ const struct attribute_group *to_remove
5.15
and 5.19
✅
5.19
and 6.2
✅
6.2
and 6.5
⚠️struct list_head deleting
atomic_t active_io
➡️ struct percpu_ref active_io
6.5
and 6.8
⚠️struct mutex suspend_mutex
struct work_struct sync_work
struct bio_set io_clone_set
struct mutex sync_mutex
atomic_t sync_seq
struct bio_set io_acct_set
amd64
and arm64
✅
amd64
and armhf
✅
amd64
and ppc64el
✅
amd64
and riscv64
✅
generic
and aws
✅
generic
and azure
✅
generic
and gcp
✅
generic
and lowlatency
✅