]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
fanotify: Fold dequeue_event() into process_access_response()
authorJan Kara <jack@suse.cz>
Tue, 8 Jan 2019 12:28:18 +0000 (13:28 +0100)
committerJan Kara <jack@suse.cz>
Mon, 18 Feb 2019 10:49:36 +0000 (11:49 +0100)
Fold dequeue_event() into process_access_response(). This will make
changes to use of ->response field easier.

Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
fs/notify/fanotify/fanotify_user.c

index 6c61a06d0ef53695b882eb53bbe6b34f3f171661..e47d2a7709bf115c1622344864e260621d19020c 100644 (file)
@@ -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)
 {
@@ -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)