From ee630b164f45582a2b3d3ded11094fcf6156bd08 Mon Sep 17 00:00:00 2001 From: Chris Kirby Date: Mon, 1 Dec 2025 08:58:24 -0600 Subject: [PATCH] Handle ENOENT when getting log merge status item Tests that cause client retries can fail with this error from server_commit_log_merge(): error -2 committing log merge: getting merge status item This can happen if the server has already committed and resolved the log merge that is being retried. We can safely ignore ENOENT here just like we do a few lines later. Signed-off-by: Chris Kirby --- kmod/src/server.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/kmod/src/server.c b/kmod/src/server.c index 38eff148..43a63784 100644 --- a/kmod/src/server.c +++ b/kmod/src/server.c @@ -3036,7 +3036,13 @@ static int server_commit_log_merge(struct super_block *sb, SCOUTFS_LOG_MERGE_STATUS_ZONE, 0, 0, &stat, sizeof(stat)); if (ret < 0) { - err_str = "getting merge status item"; + /* + * During a retransmission, it's possible that the server + * already committed and resolved this log merge. ENOENT + * is expected in that case. + */ + if (ret != -ENOENT) + err_str = "getting merge status item"; goto out; }