From: NeilBrown <neilb@suse.com>
Subject: Fix kabi after "md: batch flush requests."
Patch-mainline: Never, kabi
References: bsc#1119680
The new fields are private to md, so they can be hidden from the kabi.
Acked-by: NeilBrown <neilb@suse.com>
Signed-off-by: Neil Brown <neilb@suse.com>
Acked-by: Coly Li <colyli@suse.de>
---
drivers/md/md-cluster.h | 7 +++++--
drivers/md/md.h | 42 +++++++++++++++++++++++++-----------------
2 files changed, 30 insertions(+), 19 deletions(-)
--- a/drivers/md/md-cluster.h
+++ b/drivers/md/md-cluster.h
@@ -13,7 +13,6 @@ struct md_cluster_operations {
int (*leave)(struct mddev *mddev);
int (*slot_number)(struct mddev *mddev);
int (*resync_info_update)(struct mddev *mddev, sector_t lo, sector_t hi);
- void (*resync_info_get)(struct mddev *mddev, sector_t *lo, sector_t *hi);
int (*metadata_update_start)(struct mddev *mddev);
int (*metadata_update_finish)(struct mddev *mddev);
void (*metadata_update_cancel)(struct mddev *mddev);
@@ -26,10 +25,14 @@ struct md_cluster_operations {
int (*remove_disk)(struct mddev *mddev, struct md_rdev *rdev);
void (*load_bitmaps)(struct mddev *mddev, int total_slots);
int (*gather_bitmaps)(struct md_rdev *rdev);
- int (*resize_bitmaps)(struct mddev *mddev, sector_t newsize, sector_t oldsize);
int (*lock_all_bitmaps)(struct mddev *mddev);
void (*unlock_all_bitmaps)(struct mddev *mddev);
void (*update_size)(struct mddev *mddev, sector_t old_dev_sectors);
+
+#ifndef __GENKSYMS__
+ void (*resync_info_get)(struct mddev *mddev, sector_t *lo, sector_t *hi);
+ int (*resize_bitmaps)(struct mddev *mddev, sector_t newsize, sector_t oldsize);
+#endif
};
#endif /* _MD_CLUSTER_H */
--- a/drivers/md/md.h
+++ b/drivers/md/md.h
@@ -118,21 +118,10 @@ struct md_rdev {
* in superblock.
*/
- /*
- * The members for check collision of write IOs.
- */
- struct list_head serial_list;
- spinlock_t serial_list_lock;
- wait_queue_head_t serial_io_wait;
-
struct work_struct del_work; /* used for delayed sysfs removal */
struct kernfs_node *sysfs_state; /* handle for 'state'
* sysfs entry */
- /* handle for 'unacknowledged_bad_blocks' sysfs dentry */
- struct kernfs_node *sysfs_unack_badblocks;
- /* handle for 'bad_blocks' sysfs dentry */
- struct kernfs_node *sysfs_badblocks;
struct badblocks badblocks;
struct {
@@ -141,6 +130,20 @@ struct md_rdev {
unsigned int size; /* Size in sectors of the PPL space */
sector_t sector; /* First sector of the PPL space */
} ppl;
+
+#ifndef __GENKSYMS__
+ /*
+ * The members for check collision of write IOs.
+ */
+ struct list_head serial_list;
+ spinlock_t serial_list_lock;
+ wait_queue_head_t serial_io_wait;
+
+ /* handle for 'unacknowledged_bad_blocks' sysfs dentry */
+ struct kernfs_node *sysfs_unack_badblocks;
+ /* handle for 'bad_blocks' sysfs dentry */
+ struct kernfs_node *sysfs_badblocks;
+#endif
};
enum flag_bits {
Faulty, /* device is known to have a fault */
@@ -428,9 +431,6 @@ struct mddev {
* file in sysfs.
*/
struct kernfs_node *sysfs_action; /* handle for 'sync_action' */
- struct kernfs_node *sysfs_completed; /*handle for 'sync_completed' */
- struct kernfs_node *sysfs_degraded; /*handle for 'degraded' */
- struct kernfs_node *sysfs_level; /*handle for 'level' */
struct work_struct del_work; /* used for delayed sysfs removal */
@@ -504,14 +504,19 @@ struct mddev {
*/
struct work_struct flush_work;
struct work_struct event_work; /* used by dm to report failure event */
- mempool_t *serial_info_pool;
void (*sync_super)(struct mddev *mddev, struct md_rdev *rdev);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr; /* good device num within cluster raid */
- unsigned int noio_flag; /* for memalloc scope API */
bool has_superblocks:1;
+#ifndef __GENKSYMS__
+ struct kernfs_node *sysfs_completed; /*handle for 'sync_completed' */
+ struct kernfs_node *sysfs_degraded; /*handle for 'degraded' */
+ struct kernfs_node *sysfs_level; /*handle for 'level' */
+ mempool_t *serial_info_pool;
+ unsigned int noio_flag; /* for memalloc scope API */
bool fail_last_dev:1;
+#endif
};
enum recovery_flags {
@@ -591,7 +596,6 @@ struct md_personality
int (*check_reshape) (struct mddev *mddev);
int (*start_reshape) (struct mddev *mddev);
void (*finish_reshape) (struct mddev *mddev);
- void (*update_reshape_pos) (struct mddev *mddev);
/* quiesce suspends or resumes internal processing.
* 1 - stop new actions and wait for action io to complete
* 0 - return to normal behaviour
@@ -612,6 +616,10 @@ struct md_personality
int (*congested)(struct mddev *mddev, int bits);
/* Changes the consistency policy of an active array. */
int (*change_consistency_policy)(struct mddev *mddev, const char *buf);
+
+#ifndef __GENKSYMS__
+ void (*update_reshape_pos) (struct mddev *mddev);
+#endif
};
struct md_sysfs_entry {