Add an IS_KERNEL_FILE() macro to test the S_KERNEL_FILE inode flag as is
common practice for the other inode flags[1].

Suggested-by: Jeff Layton <jlay...@kernel.org>
Signed-off-by: David Howells <dhowe...@redhat.com>
Reviewed-by: Jeff Layton <jlay...@kernel.org>
cc: linux-cachefs@redhat.com
Link: 
https://lore.kernel.org/r/88d7f8970dcc0fd0ead891b1f42f160b8d17d60e.ca...@kernel.org/
 [1]
---

 fs/cachefiles/namei.c |    6 +++---
 fs/namei.c            |    2 +-
 include/linux/fs.h    |    1 +
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/fs/cachefiles/namei.c b/fs/cachefiles/namei.c
index f256c8aff7bb..04563f759e99 100644
--- a/fs/cachefiles/namei.c
+++ b/fs/cachefiles/namei.c
@@ -20,7 +20,7 @@ static bool __cachefiles_mark_inode_in_use(struct 
cachefiles_object *object,
        struct inode *inode = d_backing_inode(dentry);
        bool can_use = false;
 
-       if (!(inode->i_flags & S_KERNEL_FILE)) {
+       if (!IS_KERNEL_FILE(inode)) {
                inode->i_flags |= S_KERNEL_FILE;
                trace_cachefiles_mark_active(object, inode);
                can_use = true;
@@ -746,7 +746,7 @@ static struct dentry *cachefiles_lookup_for_cull(struct 
cachefiles_cache *cache,
                goto lookup_error;
        if (d_is_negative(victim))
                goto lookup_put;
-       if (d_inode(victim)->i_flags & S_KERNEL_FILE)
+       if (IS_KERNEL_FILE(d_inode(victim)))
                goto lookup_busy;
        return victim;
 
@@ -793,7 +793,7 @@ int cachefiles_cull(struct cachefiles_cache *cache, struct 
dentry *dir,
        /* check to see if someone is using this object */
        inode = d_inode(victim);
        inode_lock(inode);
-       if (inode->i_flags & S_KERNEL_FILE) {
+       if (IS_KERNEL_FILE(inode)) {
                ret = -EBUSY;
        } else {
                /* Stop the cache from picking it back up */
diff --git a/fs/namei.c b/fs/namei.c
index d81f04f8d818..c2175ab3849d 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -3959,7 +3959,7 @@ int vfs_rmdir(struct user_namespace *mnt_userns, struct 
inode *dir,
 
        error = -EBUSY;
        if (is_local_mountpoint(dentry) ||
-           (dentry->d_inode->i_flags & S_KERNEL_FILE))
+           IS_KERNEL_FILE(dentry->d_inode))
                goto out;
 
        error = security_inode_rmdir(dir, dentry);
diff --git a/include/linux/fs.h b/include/linux/fs.h
index f5d3bf5b69a6..227497793282 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -2216,6 +2216,7 @@ static inline bool sb_rdonly(const struct super_block 
*sb) { return sb->s_flags
 #define IS_ENCRYPTED(inode)    ((inode)->i_flags & S_ENCRYPTED)
 #define IS_CASEFOLDED(inode)   ((inode)->i_flags & S_CASEFOLD)
 #define IS_VERITY(inode)       ((inode)->i_flags & S_VERITY)
+#define IS_KERNEL_FILE(inode)  ((inode)->i_flags & S_KERNEL_FILE)
 
 #define IS_WHITEOUT(inode)     (S_ISCHR(inode->i_mode) && \
                                 (inode)->i_rdev == WHITEOUT_DEV)


--
Linux-cachefs mailing list
Linux-cachefs@redhat.com
https://listman.redhat.com/mailman/listinfo/linux-cachefs

Reply via email to