From: Viacheslav Dubeyko <Slava.Dubeyko@xxxxxxx> This patch introduces CEPH_INVALID_CACHE_IDX instead of hardcoded value. The CEPH_INVALID_CACHE_IDX constant is used for initialization and checking that cache index is invalid. Signed-off-by: Viacheslav Dubeyko <Slava.Dubeyko@xxxxxxx> --- fs/ceph/dir.c | 12 ++++++------ fs/ceph/file.c | 2 +- fs/ceph/super.h | 8 ++++++++ 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c index a321aa6d0ed2..acecc16f2b99 100644 --- a/fs/ceph/dir.c +++ b/fs/ceph/dir.c @@ -296,8 +296,8 @@ static int __dcache_readdir(struct file *file, struct dir_context *ctx, err = ret; dput(last); /* last_name no longer match cache index */ - if (dfi->readdir_cache_idx >= 0) { - dfi->readdir_cache_idx = -1; + if (!is_cache_idx_invalid(dfi->readdir_cache_idx)) { + dfi->readdir_cache_idx = CEPH_INVALID_CACHE_IDX; dfi->dir_release_count = 0; } } @@ -483,7 +483,7 @@ static int ceph_readdir(struct file *file, struct dir_context *ctx) if (test_bit(CEPH_MDS_R_DID_PREPOPULATE, &req->r_req_flags)) { dfi->readdir_cache_idx = req->r_readdir_cache_idx; - if (dfi->readdir_cache_idx < 0) { + if (is_cache_idx_invalid(dfi->readdir_cache_idx)) { /* preclude from marking dir ordered */ dfi->dir_ordered_count = 0; } else if (ceph_frag_is_leftmost(frag) && @@ -497,7 +497,7 @@ static int ceph_readdir(struct file *file, struct dir_context *ctx) doutc(cl, "%p %llx.%llx !did_prepopulate\n", inode, ceph_vinop(inode)); /* disable readdir cache */ - dfi->readdir_cache_idx = -1; + dfi->readdir_cache_idx = CEPH_INVALID_CACHE_IDX; /* preclude from marking dir complete */ dfi->dir_release_count = 0; } @@ -643,7 +643,7 @@ static void reset_readdir(struct ceph_dir_file_info *dfi) kfree(dfi->last_name); dfi->last_name = NULL; dfi->dir_release_count = 0; - dfi->readdir_cache_idx = -1; + dfi->readdir_cache_idx = CEPH_INVALID_CACHE_IDX; dfi->next_offset = 2; /* compensate for . and .. */ dfi->file_info.flags &= ~CEPH_F_ATEND; } @@ -703,7 +703,7 @@ static loff_t ceph_dir_llseek(struct file *file, loff_t offset, int whence) /* for hash offset, we don't know if a forward seek * is within same frag */ dfi->dir_release_count = 0; - dfi->readdir_cache_idx = -1; + dfi->readdir_cache_idx = CEPH_INVALID_CACHE_IDX; } if (offset != file->f_pos) { diff --git a/fs/ceph/file.c b/fs/ceph/file.c index 851d70200c6b..2097a23c0c31 100644 --- a/fs/ceph/file.c +++ b/fs/ceph/file.c @@ -220,7 +220,7 @@ static int ceph_init_file_info(struct inode *inode, struct file *file, file->private_data = dfi; fi = &dfi->file_info; dfi->next_offset = 2; - dfi->readdir_cache_idx = -1; + dfi->readdir_cache_idx = CEPH_INVALID_CACHE_IDX; } else { fi = kmem_cache_zalloc(ceph_file_cachep, GFP_KERNEL); if (!fi) diff --git a/fs/ceph/super.h b/fs/ceph/super.h index bb0db0cc8003..bcd1dda1ab81 100644 --- a/fs/ceph/super.h +++ b/fs/ceph/super.h @@ -840,6 +840,14 @@ struct ceph_file_info { u32 filp_gen; }; +#define CEPH_INVALID_CACHE_IDX (-1) + +static inline +bool is_cache_idx_invalid(int cache_idx) +{ + return cache_idx <= CEPH_INVALID_CACHE_IDX; +} + struct ceph_dir_file_info { struct ceph_file_info file_info; -- 2.48.0