[PATCH 11/23] Consolidate error printing in debugfs

Valerie Aurora val at versity.com
Fri Apr 4 11:45:27 PDT 2025


Create a single function to print errno-based errors from debugfs
commands. It uses printf() for expected errors during normal file
system usage and log() for unexpected errors that might indicate a
bug.

Signed-off-by: Valerie Aurora <val at versity.com>
---
 cli/debugfs.c | 34 +++++++++++++++++++++++++++-------
 1 file changed, 27 insertions(+), 7 deletions(-)

diff --git a/cli/debugfs.c b/cli/debugfs.c
index bb6af31..fb0a82c 100644
--- a/cli/debugfs.c
+++ b/cli/debugfs.c
@@ -35,6 +35,26 @@ struct debugfs_context {
 #define LINE_SIZE (PATH_MAX * 5)
 #define MAX_ARGC ((LINE_SIZE + 1) / 2)
 
+/*
+ * Print expected errors using printf; unexpected errors using log().
+ */
+static void print_err(char *cmd, int err)
+{
+	if ((err == -ENOENT) ||
+	    (err == -EEXIST) ||
+	    (err == -EISDIR) ||
+	    (err == -ENOTDIR) ||
+	    (err == -ENAMETOOLONG) ||
+	    (err == -ENOBUFS) ||
+	    (err == -EMLINK) ||
+	    (err == -ENODATA) ||
+	    (err == -ERANGE) ||
+	    (err == -EINVAL))
+		printf("%s error: "ENOF"\n", cmd, ENOA(-err));
+	else
+		log("%s unexpected error: "ENOF, cmd, ENOA(-err));
+}
+
 static void cmd_create(struct debugfs_context *ctx, int argc, char **argv)
 {
 	int ret;
@@ -46,7 +66,7 @@ static void cmd_create(struct debugfs_context *ctx, int argc, char **argv)
 
 	ret = ngnfs_dir_create(ctx->nfi, &ctx->cwd_ig, 0644, argv[1], strlen(argv[1]));
 	if (ret < 0)
-		printf("create error: "ENOF"\n", ENOA(-ret));
+		print_err("create", ret);
 }
 
 static void cmd_mkfs(struct debugfs_context *ctx, int argc, char **argv)
@@ -55,13 +75,13 @@ static void cmd_mkfs(struct debugfs_context *ctx, int argc, char **argv)
 
 	ret = ngnfs_mkfs(ctx->nfi);
 	if (ret < 0) {
-		printf("mkfs error: "ENOF"\n", ENOA(-ret));
+		print_err("mkfs", ret);
 		return;
 	}
 
 	ret = ngnfs_block_sync(ctx->nfi);
 	if (ret < 0)
-		printf("final sync error: "ENOF"\n", ENOA(-ret));
+		print_err("mkfs: final sync", ret);
 }
 
 static void cmd_quit(struct debugfs_context *ctx, int argc, char **argv)
@@ -104,7 +124,7 @@ static void cmd_readdir(struct debugfs_context *ctx, int argc, char **argv)
 		ret = ngnfs_dir_readdir(ctx->nfi, &ctx->cwd_ig, pos, buf, size);
 		if (ret <= 0) {
 			if (ret < 0)
-				printf("readdir error: "ENOF"\n", ENOA(-ret));
+				print_err("readdir", ret);
 			break;
 		}
 
@@ -134,7 +154,7 @@ static void cmd_stat(struct debugfs_context *ctx, int argc, char **argv)
 	ret = ngnfs_inode_read_copy(ctx->nfi, &root_ig, &ninode, sizeof(ninode));
 
 	if (ret < 0) {
-		log("stat error: %d", ret);
+		print_err("stat", ret);
 	} else if (ret < sizeof(ninode)) {
 		log("returned inode buffer size %d too small, wanted at least %zu",
 		    ret, sizeof(ninode));
@@ -170,7 +190,7 @@ static void cmd_sync(struct debugfs_context *ctx, int argc, char **argv)
 
 	ret = ngnfs_block_sync(ctx->nfi);
 	if (ret < 0)
-		printf("sync error: "ENOF"\n", ENOA(-ret));
+		print_err("sync", ret);
 }
 
 
@@ -269,7 +289,7 @@ static void debugfs_thread(struct thread *thr, void *arg)
 
 	ret = ngnfs_block_sync(ctx->nfi);
 	if (ret < 0)
-		printf("final sync error: "ENOF"\n", ENOA(-ret));
+		print_err("final sync", ret);
 out:
 	free(line);
 	free(line_argv);
-- 
2.48.1




More information about the ngnfs-devel mailing list