Message ID | 20210629191035.681913-7-krisman@collabora.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | File system wide monitoring | expand |
On Tue 29-06-21 15:10:26, Gabriel Krisman Bertazi wrote: > Similarly to fanotify_is_perm_event and friends, provide a helper > predicate to say whether a mask is of an overflow event. > > Suggested-by: Amir Goldstein <amir73il@gmail.com> > Reviewed-by: Amir Goldstein <amir73il@gmail.com> > Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.com> > --- > fs/notify/fanotify/fanotify.h | 3 ++- > include/linux/fsnotify_backend.h | 5 +++++ > 2 files changed, 7 insertions(+), 1 deletion(-) Looks good. Feel free to add: Reviewed-by: Jan Kara <jack@suse.cz> Honza > > diff --git a/fs/notify/fanotify/fanotify.h b/fs/notify/fanotify/fanotify.h > index fd125a949187..2e005b3a75f2 100644 > --- a/fs/notify/fanotify/fanotify.h > +++ b/fs/notify/fanotify/fanotify.h > @@ -328,7 +328,8 @@ static inline struct path *fanotify_event_path(struct fanotify_event *event) > */ > static inline bool fanotify_is_hashed_event(u32 mask) > { > - return !fanotify_is_perm_event(mask) && !(mask & FS_Q_OVERFLOW); > + return !(fanotify_is_perm_event(mask) || > + fsnotify_is_overflow_event(mask)); > } > > static inline unsigned int fanotify_event_hash_bucket( > diff --git a/include/linux/fsnotify_backend.h b/include/linux/fsnotify_backend.h > index c4473b467c28..f9e2c6cd0f7d 100644 > --- a/include/linux/fsnotify_backend.h > +++ b/include/linux/fsnotify_backend.h > @@ -495,6 +495,11 @@ static inline void fsnotify_queue_overflow(struct fsnotify_group *group) > fsnotify_add_event(group, group->overflow_event, NULL, NULL); > } > > +static inline bool fsnotify_is_overflow_event(u32 mask) > +{ > + return mask & FS_Q_OVERFLOW; > +} > + > static inline bool fsnotify_notify_queue_is_empty(struct fsnotify_group *group) > { > assert_spin_locked(&group->notification_lock); > -- > 2.32.0 >
diff --git a/fs/notify/fanotify/fanotify.h b/fs/notify/fanotify/fanotify.h index fd125a949187..2e005b3a75f2 100644 --- a/fs/notify/fanotify/fanotify.h +++ b/fs/notify/fanotify/fanotify.h @@ -328,7 +328,8 @@ static inline struct path *fanotify_event_path(struct fanotify_event *event) */ static inline bool fanotify_is_hashed_event(u32 mask) { - return !fanotify_is_perm_event(mask) && !(mask & FS_Q_OVERFLOW); + return !(fanotify_is_perm_event(mask) || + fsnotify_is_overflow_event(mask)); } static inline unsigned int fanotify_event_hash_bucket( diff --git a/include/linux/fsnotify_backend.h b/include/linux/fsnotify_backend.h index c4473b467c28..f9e2c6cd0f7d 100644 --- a/include/linux/fsnotify_backend.h +++ b/include/linux/fsnotify_backend.h @@ -495,6 +495,11 @@ static inline void fsnotify_queue_overflow(struct fsnotify_group *group) fsnotify_add_event(group, group->overflow_event, NULL, NULL); } +static inline bool fsnotify_is_overflow_event(u32 mask) +{ + return mask & FS_Q_OVERFLOW; +} + static inline bool fsnotify_notify_queue_is_empty(struct fsnotify_group *group) { assert_spin_locked(&group->notification_lock);