On Wed, Feb 13, 2019 at 4:54 PM Jan Kara <jack@xxxxxxx> wrote: > > Fold dequeue_event() into process_access_response(). This will make > changes to use of ->response field easier. > > Signed-off-by: Jan Kara <jack@xxxxxxx> Reviewed-by: Amir Goldstein <amir73il@xxxxxxxxx> > --- > fs/notify/fanotify/fanotify_user.c | 41 ++++++++++++-------------------------- > 1 file changed, 13 insertions(+), 28 deletions(-) > > diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c > index 9c870b0d2b56..908ebc421d15 100644 > --- a/fs/notify/fanotify/fanotify_user.c > +++ b/fs/notify/fanotify/fanotify_user.c > @@ -144,28 +144,6 @@ static int fill_event_metadata(struct fsnotify_group *group, > return ret; > } > > -static struct fanotify_perm_event_info *dequeue_event( > - struct fsnotify_group *group, int fd) > -{ > - struct fanotify_perm_event_info *event, *return_e = NULL; > - > - spin_lock(&group->notification_lock); > - list_for_each_entry(event, &group->fanotify_data.access_list, > - fae.fse.list) { > - if (event->fd != fd) > - continue; > - > - list_del_init(&event->fae.fse.list); > - return_e = event; > - break; > - } > - spin_unlock(&group->notification_lock); > - > - pr_debug("%s: found return_re=%p\n", __func__, return_e); > - > - return return_e; > -} > - > static int process_access_response(struct fsnotify_group *group, > struct fanotify_response *response_struct) > { > @@ -194,14 +172,21 @@ static int process_access_response(struct fsnotify_group *group, > if ((response & FAN_AUDIT) && !FAN_GROUP_FLAG(group, FAN_ENABLE_AUDIT)) > return -EINVAL; > > - event = dequeue_event(group, fd); > - if (!event) > - return -ENOENT; > + spin_lock(&group->notification_lock); > + list_for_each_entry(event, &group->fanotify_data.access_list, > + fae.fse.list) { > + if (event->fd != fd) > + continue; > > - event->response = response; > - wake_up(&group->fanotify_data.access_waitq); > + list_del_init(&event->fae.fse.list); > + event->response = response; > + spin_unlock(&group->notification_lock); > + wake_up(&group->fanotify_data.access_waitq); > + return 0; > + } > + spin_unlock(&group->notification_lock); > > - return 0; > + return -ENOENT; > } > > static ssize_t copy_event_to_user(struct fsnotify_group *group, > -- > 2.16.4 >