diff mbox series

[RFC,1/2] ceph: introduce CEPH_INVALID_CACHE_IDX

Message ID 20250501194248.660959-2-slava@dubeyko.com
State New
Headers show
Series ceph: cleanup of hardcoded invalid ID | expand

Commit Message

Viacheslav Dubeyko May 1, 2025, 7:42 p.m. UTC
From: Viacheslav Dubeyko <Slava.Dubeyko@ibm.com>

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@ibm.com>
---
 fs/ceph/dir.c   | 12 ++++++------
 fs/ceph/file.c  |  2 +-
 fs/ceph/super.h |  8 ++++++++
 3 files changed, 15 insertions(+), 7 deletions(-)
diff mbox series

Patch

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;