From: Darrick J. Wong <djwong@xxxxxxxxxx> Change __translate_error so that all the EXT2_*_CORRUPTED codes generate a hard error returning EUCLEAN which is the same errno that the kernel uses. Signed-off-by: "Darrick J. Wong" <djwong@xxxxxxxxxx> --- misc/fuse2fs.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/misc/fuse2fs.c b/misc/fuse2fs.c index eb1ac818359c19..f0ac89db4f6c37 100644 --- a/misc/fuse2fs.c +++ b/misc/fuse2fs.c @@ -4275,6 +4275,19 @@ static int __translate_error(ext2_filsys fs, ext2_ino_t ino, errcode_t err, case EXT2_ET_UNIMPLEMENTED: ret = -EOPNOTSUPP; break; + case EXT2_ET_DIR_CORRUPTED: + case EXT2_ET_CORRUPT_SUPERBLOCK: + case EXT2_ET_RESIZE_INODE_CORRUPT: + case EXT2_ET_TDB_ERR_CORRUPT: + case EXT2_ET_UNDO_FILE_CORRUPT: + case EXT2_ET_FILESYSTEM_CORRUPTED: + case EXT2_ET_CORRUPT_JOURNAL_SB: + case EXT2_ET_INODE_CORRUPTED: + case EXT2_ET_EA_INODE_CORRUPTED: + /* same errno that linux uses */ + is_err = 1; + ret = -EUCLEAN; + break; default: is_err = 1; ret = -EIO;