0001
0002
0003
0004 #ifndef _MD_CLUSTER_H
0005 #define _MD_CLUSTER_H
0006
0007 #include "md.h"
0008
0009 struct mddev;
0010 struct md_rdev;
0011
0012 struct md_cluster_operations {
0013 int (*join)(struct mddev *mddev, int nodes);
0014 int (*leave)(struct mddev *mddev);
0015 int (*slot_number)(struct mddev *mddev);
0016 int (*resync_info_update)(struct mddev *mddev, sector_t lo, sector_t hi);
0017 void (*resync_info_get)(struct mddev *mddev, sector_t *lo, sector_t *hi);
0018 int (*metadata_update_start)(struct mddev *mddev);
0019 int (*metadata_update_finish)(struct mddev *mddev);
0020 void (*metadata_update_cancel)(struct mddev *mddev);
0021 int (*resync_start)(struct mddev *mddev);
0022 int (*resync_finish)(struct mddev *mddev);
0023 int (*area_resyncing)(struct mddev *mddev, int direction, sector_t lo, sector_t hi);
0024 int (*add_new_disk)(struct mddev *mddev, struct md_rdev *rdev);
0025 void (*add_new_disk_cancel)(struct mddev *mddev);
0026 int (*new_disk_ack)(struct mddev *mddev, bool ack);
0027 int (*remove_disk)(struct mddev *mddev, struct md_rdev *rdev);
0028 void (*load_bitmaps)(struct mddev *mddev, int total_slots);
0029 int (*gather_bitmaps)(struct md_rdev *rdev);
0030 int (*resize_bitmaps)(struct mddev *mddev, sector_t newsize, sector_t oldsize);
0031 int (*lock_all_bitmaps)(struct mddev *mddev);
0032 void (*unlock_all_bitmaps)(struct mddev *mddev);
0033 void (*update_size)(struct mddev *mddev, sector_t old_dev_sectors);
0034 };
0035
0036 #endif