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
Attachment:
.config.gz
Description: application/gzip