[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <174966018106.3972888.12154557537002504919.stgit@frogsfrogsfrogs>
Date: Wed, 11 Jun 2025 09:44:17 -0700
From: "Darrick J. Wong" <djwong@...nel.org>
To: tytso@....edu
Cc: linux-ext4@...r.kernel.org, linux-ext4@...r.kernel.org
Subject: [PATCH 3/3] fuse2fs: catch positive errnos coming from libext2fs
From: Darrick J. Wong <djwong@...nel.org>
Something in libext2fs is returning EOVERFLOW (positive) to us. We need
to pass negative errnos back to the fuse driver, so perform this
translation.
Cc: <linux-ext4@...r.kernel.org> # v1.43
Fixes: 81cbf1ef4f5dab ("misc: add fuse2fs, a FUSE server for e2fsprogs")
Signed-off-by: "Darrick J. Wong" <djwong@...nel.org>
---
misc/fuse2fs.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/misc/fuse2fs.c b/misc/fuse2fs.c
index cc023065727fd5..2bf7413bebb70c 100644
--- a/misc/fuse2fs.c
+++ b/misc/fuse2fs.c
@@ -4633,8 +4633,18 @@ static int __translate_error(ext2_filsys fs, ext2_ino_t ino, errcode_t err,
int is_err = 0;
/* Translate ext2 error to unix error code */
- if (err < EXT2_ET_BASE)
+ if (err < EXT2_ET_BASE) {
+ if (err > 0) {
+ /*
+ * Apparently libext2fs can throw positive errno
+ * numbers at us. We need to return negative errnos
+ * to the fuse driver.
+ */
+ is_err = 1;
+ ret = -err;
+ }
goto no_translation;
+ }
switch (err) {
case EXT2_ET_NO_MEMORY:
case EXT2_ET_TDB_ERR_OOM:
Powered by blists - more mailing lists