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
};
/*