Skip to content

Commit

Permalink
fanotify: Fold dequeue_event() into process_access_response()
Browse files Browse the repository at this point in the history
Fold dequeue_event() into process_access_response(). This will make
changes to use of ->response field easier.

Reviewed-by: Amir Goldstein <[email protected]>
Signed-off-by: Jan Kara <[email protected]>
  • Loading branch information
jankara committed Feb 18, 2019
1 parent 53136b3 commit af6a511
Showing 1 changed file with 13 additions and 28 deletions.
41 changes: 13 additions & 28 deletions fs/notify/fanotify/fanotify_user.c
Original file line number Diff line number Diff line change
Expand Up @@ -138,28 +138,6 @@ static int create_fd(struct fsnotify_group *group,
return client_fd;
}

static struct fanotify_perm_event *dequeue_event(
struct fsnotify_group *group, int fd)
{
struct fanotify_perm_event *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)
{
Expand Down Expand Up @@ -188,14 +166,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 int copy_fid_to_user(struct fanotify_event *event, char __user *buf)
Expand Down

0 comments on commit af6a511

Please sign in to comment.