Whamcloud - gitweb
fuse2fs: correctly handle system errno values in __translate_error()
authorTheodore Ts'o <tytso@mit.edu>
Thu, 12 Jun 2025 16:33:44 +0000 (14:03 -0230)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 12 Jun 2025 16:35:31 +0000 (14:05 -0230)
Fixes: 81cbf1ef4f5dab ("misc: add fuse2fs, a FUSE server for e2fsprogs")
Reported-by: "Darrick J. Wong" <djwong@kernel.org>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
misc/fuse2fs.c

index bc49edf..97b1c5b 100644 (file)
@@ -4659,9 +4659,9 @@ 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)
-               goto no_translation;
        switch (err) {
+       case 0:
+               break;
        case EXT2_ET_NO_MEMORY:
        case EXT2_ET_TDB_ERR_OOM:
                ret = -ENOMEM;
@@ -4755,11 +4755,10 @@ static int __translate_error(ext2_filsys fs, ext2_ino_t ino, errcode_t err,
                break;
        default:
                is_err = 1;
-               ret = -EIO;
+               ret = (err < 256) ? -err : -EIO;
                break;
        }
 
-no_translation:
        if (!is_err)
                return ret;