> +++ b/mdrestore/xfs_mdrestore.c > @@ -19,8 +19,9 @@ struct mdrestore_ops { > void (*read_header)(union mdrestore_headers *header, FILE *md_fp); > void (*show_info)(union mdrestore_headers *header, const char *md_file); > void (*restore)(union mdrestore_headers *header, FILE *md_fp, > - int ddev_fd, bool is_data_target_file, int logdev_fd, > - bool is_log_target_file); > + int ddev_fd, bool is_data_target_file, > + int logdev_fd, bool is_log_target_file, > + int rtdev_fd, bool is_rt_target_file); This almost feels like adding a little struct nicely clean up the interface here: struct mdrestore_dev { int fd; bool is_file; } void (*restore)(union mdrestore_headers *header, FILE *md_fp, struct mdrestore_dev *ddev, struct mdrestore_dev *logdev, struct mdrestore_dev *rtdev); and also be useful for at least verify_device_size.