Skip to content

Commit

Permalink
fsnotify: Add fsnotify_sb_has_watchers() helper
Browse files Browse the repository at this point in the history
Instead of opencoded checks for number of fsnotify connectors add a
helper fsnotify_sb_has_watchers().

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
  • Loading branch information
Amir Goldstein authored and Jan Kara committed Jan 24, 2024
1 parent 082fd1e commit b7dbaac
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions include/linux/fsnotify.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@
#include <linux/slab.h>
#include <linux/bug.h>

/* Are there any inode/mount/sb objects that are being watched at all? */
static inline bool fsnotify_sb_has_watchers(struct super_block *sb)
{
return atomic_long_read(&sb->s_fsnotify_connectors);
}

/*
* Notify this @dir inode about a change in a child directory entry.
* The directory entry may have turned positive or negative or its inode may
Expand All @@ -30,7 +36,7 @@ static inline int fsnotify_name(__u32 mask, const void *data, int data_type,
struct inode *dir, const struct qstr *name,
u32 cookie)
{
if (atomic_long_read(&dir->i_sb->s_fsnotify_connectors) == 0)
if (!fsnotify_sb_has_watchers(dir->i_sb))
return 0;

return fsnotify(mask, data, data_type, dir, name, NULL, cookie);
Expand All @@ -44,7 +50,7 @@ static inline void fsnotify_dirent(struct inode *dir, struct dentry *dentry,

static inline void fsnotify_inode(struct inode *inode, __u32 mask)
{
if (atomic_long_read(&inode->i_sb->s_fsnotify_connectors) == 0)
if (!fsnotify_sb_has_watchers(inode->i_sb))
return;

if (S_ISDIR(inode->i_mode))
Expand All @@ -59,7 +65,7 @@ static inline int fsnotify_parent(struct dentry *dentry, __u32 mask,
{
struct inode *inode = d_inode(dentry);

if (atomic_long_read(&inode->i_sb->s_fsnotify_connectors) == 0)
if (!fsnotify_sb_has_watchers(inode->i_sb))
return 0;

if (S_ISDIR(inode->i_mode)) {
Expand Down

0 comments on commit b7dbaac

Please sign in to comment.