Blob Blame History Raw
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 {