Xfs and Ext* uses EFSCORRUPTED to indicate filesystem corruption.
They both map EFSCORRUPTED to EUCLEAN.
Btrfs/Ubifs/fscrypto all use EUCLEAN directly to indicate filesystem
corruption.
And block layer is going to distinguish filesystem corruption with
oridinary EIO error, it's a good idea to export the initial EFSCORRUPTED
declaration to <linux/errno.h> so all filesystems and block layer can
take advantage of this easier-to-read error number.
Signed-off-by: Qu Wenruo <wqu@xxxxxxxx>
---
fs/ext2/ext2.h | 1 -
fs/ext4/ext4.h | 1 -
fs/xfs/xfs_linux.h | 1 -
include/uapi/asm-generic/errno.h | 3 +++
4 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/fs/ext2/ext2.h b/fs/ext2/ext2.h
index 10ab238de9a6..03d0ca8fae42 100644
--- a/fs/ext2/ext2.h
+++ b/fs/ext2/ext2.h
@@ -369,7 +369,6 @@ struct ext2_inode {
*/
#define EXT2_VALID_FS 0x0001 /* Unmounted cleanly */
#define EXT2_ERROR_FS 0x0002 /* Errors detected */
-#define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
/*
* Mount flags
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 82ffdacdc7fa..f906b5cbf96d 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -3248,6 +3248,5 @@ extern const struct iomap_ops ext4_iomap_ops;
#endif /* __KERNEL__ */
#define EFSBADCRC EBADMSG /* Bad CRC detected */
-#define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
#endif /* _EXT4_H */
diff --git a/fs/xfs/xfs_linux.h b/fs/xfs/xfs_linux.h
index edbd5a210df2..36e5c6549f15 100644
--- a/fs/xfs/xfs_linux.h
+++ b/fs/xfs/xfs_linux.h
@@ -125,7 +125,6 @@ typedef __u32 xfs_nlink_t;
#define ENOATTR ENODATA /* Attribute not found */
#define EWRONGFS EINVAL /* Mount with wrong filesystem type */
-#define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
#define EFSBADCRC EBADMSG /* Bad CRC detected */
#define SYNCHRONIZE() barrier()
diff --git a/include/uapi/asm-generic/errno.h b/include/uapi/asm-generic/errno.h
index cf9c51ac49f9..ebd6e7e76a98 100644
--- a/include/uapi/asm-generic/errno.h
+++ b/include/uapi/asm-generic/errno.h
@@ -98,6 +98,9 @@
#define EINPROGRESS 115 /* Operation now in progress */
#define ESTALE 116 /* Stale file handle */
#define EUCLEAN 117 /* Structure needs cleaning */
+
+#define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
+
#define ENOTNAM 118 /* Not a XENIX named type file */
#define ENAVAIL 119 /* No XENIX semaphores available */
#define EISNAM 120 /* Is a named type file */
--
2.21.0