1 /* SPDX-License-Identifier: GPL-2.0 */
12 struct md_cluster_operations
{
13 int (*join
)(struct mddev
*mddev
, int nodes
);
14 int (*leave
)(struct mddev
*mddev
);
15 int (*slot_number
)(struct mddev
*mddev
);
16 int (*resync_info_update
)(struct mddev
*mddev
, sector_t lo
, sector_t hi
);
17 int (*metadata_update_start
)(struct mddev
*mddev
);
18 int (*metadata_update_finish
)(struct mddev
*mddev
);
19 void (*metadata_update_cancel
)(struct mddev
*mddev
);
20 int (*resync_start
)(struct mddev
*mddev
);
21 int (*resync_finish
)(struct mddev
*mddev
);
22 int (*area_resyncing
)(struct mddev
*mddev
, int direction
, sector_t lo
, sector_t hi
);
23 int (*add_new_disk
)(struct mddev
*mddev
, struct md_rdev
*rdev
);
24 void (*add_new_disk_cancel
)(struct mddev
*mddev
);
25 int (*new_disk_ack
)(struct mddev
*mddev
, bool ack
);
26 int (*remove_disk
)(struct mddev
*mddev
, struct md_rdev
*rdev
);
27 void (*load_bitmaps
)(struct mddev
*mddev
, int total_slots
);
28 int (*gather_bitmaps
)(struct md_rdev
*rdev
);
29 int (*lock_all_bitmaps
)(struct mddev
*mddev
);
30 void (*unlock_all_bitmaps
)(struct mddev
*mddev
);
31 void (*update_size
)(struct mddev
*mddev
, sector_t old_dev_sectors
);
34 #endif /* _MD_CLUSTER_H */