Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
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 /* _MD_CLUSTER_H */