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-fanotif...
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