Whamcloud - gitweb
misc: define alternative errno if OS doesn't provide ENODATA
authorTheodore Ts'o <tytso@mit.edu>
Wed, 4 Jun 2025 00:16:30 +0000 (00:16 +0000)
committerTheodore Ts'o <tytso@mit.edu>
Wed, 4 Jun 2025 00:16:30 +0000 (00:16 +0000)
FreeBSD doesn't define ENODATA, and uses ENOATTR when an extended
attribute is not found.  So map ENODATA to ENOATTR to fix a build
failure for platforms that don't define ENODATA.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
misc/fuse2fs.c

index b26303a..19d43af 100644 (file)
 #endif
 #endif /* !defined(EUCLEAN) */
 
+#if !defined(ENODATA)
+#ifdef ENOATTR
+#define ENODATA ENOATTR
+#else
+#define ENODATA ENOENT
+#endif
+#endif /* !defined(ENODATA) */
+
 static ext2_filsys global_fs; /* Try not to use this directly */
 
 #define dbg_printf(fuse2fs, format, ...) \
@@ -4649,11 +4657,7 @@ static int __translate_error(ext2_filsys fs, ext2_ino_t ino, errcode_t err,
                ret = -EBUSY;
                break;
        case EXT2_ET_EA_KEY_NOT_FOUND:
-#ifdef ENODATA
                ret = -ENODATA;
-#else
-               ret = -ENOENT;
-#endif
                break;
        /* Sometimes fuse returns a garbage file handle pointer to us... */
        case EXT2_ET_MAGIC_EXT2_FILE: