2014-03-29 10:01:53 -05:00
# ifndef _MD_CLUSTER_H
# define _MD_CLUSTER_H
# include "md.h"
struct mddev ;
2014-10-29 18:51:31 -05:00
struct md_rdev ;
2014-03-29 10:01:53 -05:00
struct md_cluster_operations {
2014-03-30 00:42:49 -05:00
int ( * join ) ( struct mddev * mddev , int nodes ) ;
2014-03-29 10:01:53 -05:00
int ( * leave ) ( struct mddev * mddev ) ;
2014-03-30 00:42:49 -05:00
int ( * slot_number ) ( struct mddev * mddev ) ;
2015-08-19 08:14:42 +10:00
int ( * resync_info_update ) ( struct mddev * mddev , sector_t lo , sector_t hi ) ;
2014-06-07 01:44:51 -05:00
int ( * metadata_update_start ) ( struct mddev * mddev ) ;
int ( * metadata_update_finish ) ( struct mddev * mddev ) ;
2015-10-01 13:20:27 -05:00
void ( * metadata_update_cancel ) ( struct mddev * mddev ) ;
2015-09-30 13:20:35 -05:00
int ( * resync_start ) ( struct mddev * mddev ) ;
int ( * resync_finish ) ( struct mddev * mddev ) ;
2015-06-24 09:30:32 -05:00
int ( * area_resyncing ) ( struct mddev * mddev , int direction , sector_t lo , sector_t hi ) ;
2015-10-01 13:20:27 -05:00
int ( * add_new_disk ) ( struct mddev * mddev , struct md_rdev * rdev ) ;
void ( * add_new_disk_cancel ) ( struct mddev * mddev ) ;
2015-03-02 10:55:49 -06:00
int ( * new_disk_ack ) ( struct mddev * mddev , bool ack ) ;
2015-04-14 10:44:44 -05:00
int ( * remove_disk ) ( struct mddev * mddev , struct md_rdev * rdev ) ;
2016-05-04 02:17:09 -04:00
void ( * load_bitmaps ) ( struct mddev * mddev , int total_slots ) ;
2015-04-14 10:45:42 -05:00
int ( * gather_bitmaps ) ( struct md_rdev * rdev ) ;
2015-12-21 10:51:00 +11:00
int ( * lock_all_bitmaps ) ( struct mddev * mddev ) ;
void ( * unlock_all_bitmaps ) ( struct mddev * mddev ) ;
2014-03-29 10:01:53 -05:00
} ;
# endif /* _MD_CLUSTER_H */