Blob Blame History Raw
From: Jan Kara <jack@suse.cz>
Subject: fsnotify: Hide kABI changes in fsnotify_mark_connector
References: bsc#1052766
Patch-mainline: Never, kABI

The substance of the patch is to move destroy_next from a union with 'list'
to a union with 'inode + mnt'. So the size of the structure does not change
and only position of 'destroy_next' changes. That is just a pointer internal
to fsnotify framework so that it can efficiently perform RCU freeing of the
connectors. As such I don't expect any external module to be messing with
this pointer even if it dared to mess with fsnotify_mark_connector structure.
So just hide the kABI change from the detector.

Signed-off-by: Jan Kara <jack@suse.cz>

---
 include/linux/fsnotify_backend.h |    9 +++++++++
 1 file changed, 9 insertions(+)

--- a/include/linux/fsnotify_backend.h
+++ b/include/linux/fsnotify_backend.h
@@ -216,10 +216,19 @@ struct fsnotify_mark_connector {
 	union {	/* Object pointer [lock] */
 		struct inode *inode;
 		struct vfsmount *mnt;
+#ifndef __GENKSYMS__
 		/* Used listing heads to free after srcu period expires */
 		struct fsnotify_mark_connector *destroy_next;
+#endif
 	};
+#ifndef __GENKSYMS__
 	struct hlist_head list;
+#else
+	union {
+		struct hlist_head list;
+		struct fsnotify_mark_connector *destroy_next;
+	};
+#endif
 };
 
 /*