diff options
author | Amir Goldstein <amir73il@gmail.com> | 2021-03-04 11:48:22 +0100 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2021-03-16 16:14:23 +0100 |
commit | 6f73171e192366ff7c98af9fb50615ef9615f8a7 (patch) | |
tree | a00ed271b9b71439ee22ebf1d48f63eccbbb6665 /include | |
parent | Linux 5.12-rc3 (diff) | |
download | linux-6f73171e192366ff7c98af9fb50615ef9615f8a7.tar.xz linux-6f73171e192366ff7c98af9fb50615ef9615f8a7.zip |
fsnotify: allow fsnotify_{peek,remove}_first_event with empty queue
Current code has an assumtion that fsnotify_notify_queue_is_empty() is
called to verify that queue is not empty before trying to peek or remove
an event from queue.
Remove this assumption by moving the fsnotify_notify_queue_is_empty()
into the functions, allow them to return NULL value and check return
value by all callers.
This is a prep patch for multi event queues.
Link: https://lore.kernel.org/r/20210304104826.3993892-2-amir73il@gmail.com
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/fsnotify_backend.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/include/linux/fsnotify_backend.h b/include/linux/fsnotify_backend.h index e5409b83e731..7eb979bfc141 100644 --- a/include/linux/fsnotify_backend.h +++ b/include/linux/fsnotify_backend.h @@ -495,7 +495,13 @@ static inline void fsnotify_queue_overflow(struct fsnotify_group *group) fsnotify_add_event(group, group->overflow_event, NULL); } -/* true if the group notification queue is empty */ +static inline bool fsnotify_notify_queue_is_empty(struct fsnotify_group *group) +{ + assert_spin_locked(&group->notification_lock); + + return list_empty(&group->notification_list); +} + extern bool fsnotify_notify_queue_is_empty(struct fsnotify_group *group); /* return, but do not dequeue the first event on the notification queue */ extern struct fsnotify_event *fsnotify_peek_first_event(struct fsnotify_group *group); |