[PATCH v6 1/1] audit: Record fanotify access control decisions

kbuild test robot lkp at intel.com
Sat Sep 30 00:09:20 UTC 2017


Hi Steve,

[auto build test ERROR on linus/master]
[also build test ERROR on v4.14-rc2 next-20170929]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Steve-Grubb/audit-Record-fanotify-access-control-decisions/20170930-005627
config: x86_64-randconfig-b0-09300453 (attached as .config)
compiler: gcc-4.4 (Debian 4.4.7-8) 4.4.7
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   In file included from include/linux/fsnotify.h:14,
                    from fs/exec.c:59:
>> include/linux/fsnotify_backend.h:193: error: expected identifier or '(' before numeric constant
   include/linux/fsnotify_backend.h:194: warning: no semicolon at end of struct or union

vim +193 include/linux/fsnotify_backend.h

   122	
   123	/*
   124	 * A group is a "thing" that wants to receive notification about filesystem
   125	 * events.  The mask holds the subset of event types this group cares about.
   126	 * refcnt on a group is up to the implementor and at any moment if it goes 0
   127	 * everything will be cleaned up.
   128	 */
   129	struct fsnotify_group {
   130		/*
   131		 * How the refcnt is used is up to each group.  When the refcnt hits 0
   132		 * fsnotify will clean up all of the resources associated with this group.
   133		 * As an example, the dnotify group will always have a refcnt=1 and that
   134		 * will never change.  Inotify, on the other hand, has a group per
   135		 * inotify_init() and the refcnt will hit 0 only when that fd has been
   136		 * closed.
   137		 */
   138		atomic_t refcnt;		/* things with interest in this group */
   139	
   140		const struct fsnotify_ops *ops;	/* how this group handles things */
   141	
   142		/* needed to send notification to userspace */
   143		spinlock_t notification_lock;		/* protect the notification_list */
   144		struct list_head notification_list;	/* list of event_holder this group needs to send to userspace */
   145		wait_queue_head_t notification_waitq;	/* read() on the notification file blocks on this waitq */
   146		unsigned int q_len;			/* events on the queue */
   147		unsigned int max_events;		/* maximum events allowed on the list */
   148		/*
   149		 * Valid fsnotify group priorities.  Events are send in order from highest
   150		 * priority to lowest priority.  We default to the lowest priority.
   151		 */
   152		#define FS_PRIO_0	0 /* normal notifiers, no permissions */
   153		#define FS_PRIO_1	1 /* fanotify content based access control */
   154		#define FS_PRIO_2	2 /* fanotify pre-content access */
   155		unsigned int priority;
   156		bool shutdown;		/* group is being shut down, don't queue more events */
   157	
   158		/* stores all fastpath marks assoc with this group so they can be cleaned on unregister */
   159		struct mutex mark_mutex;	/* protect marks_list */
   160		atomic_t num_marks;		/* 1 for each mark and 1 for not being
   161						 * past the point of no return when freeing
   162						 * a group */
   163		struct list_head marks_list;	/* all inode marks for this group */
   164	
   165		struct fasync_struct *fsn_fa;    /* async notification */
   166	
   167		struct fsnotify_event *overflow_event;	/* Event we queue when the
   168							 * notification list is too
   169							 * full */
   170		atomic_t user_waits;		/* Number of tasks waiting for user
   171						 * response */
   172	
   173		/* groups can define private fields here or use the void *private */
   174		union {
   175			void *private;
   176	#ifdef CONFIG_INOTIFY_USER
   177			struct inotify_group_private_data {
   178				spinlock_t	idr_lock;
   179				struct idr      idr;
   180				struct ucounts *ucounts;
   181			} inotify_data;
   182	#endif
   183	#ifdef CONFIG_FANOTIFY
   184			struct fanotify_group_private_data {
   185	#ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS
   186				/* allows a group to block waiting for a userspace response */
   187				struct list_head access_list;
   188				wait_queue_head_t access_waitq;
   189	#endif /* CONFIG_FANOTIFY_ACCESS_PERMISSIONS */
   190				int f_flags;
   191				unsigned int max_marks;
   192				struct user_struct *user;
 > 193				bool audit_enabled;
   194			} fanotify_data;
   195	#endif /* CONFIG_FANOTIFY */
   196		};
   197	};
   198	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 29090 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/linux-audit/attachments/20170930/7519b255/attachment.gz>


More information about the Linux-audit mailing list