diff options
author | Theodore Ts'o <tytso@mit.edu> | 2017-06-23 00:47:05 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2017-06-23 00:47:05 -0400 |
commit | bdddf342796765a1a946e7c4aed2574f4488e4e5 (patch) | |
tree | 0ca09f4c7bde183969ea9a5ff7ff09a15c3f8a57 /fs/ext4 | |
parent | 6febe6f253a5bb5c7ac2080d688bd4b75e019d4d (diff) | |
download | op-kernel-dev-bdddf342796765a1a946e7c4aed2574f4488e4e5.zip op-kernel-dev-bdddf342796765a1a946e7c4aed2574f4488e4e5.tar.gz |
ext4: return EFSBADCRC if a bad checksum error is found in ext4_find_entry()
Previously a bad directory block with a bad checksum is skipped; we
should be returning EFSBADCRC (aka EBADMSG).
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'fs/ext4')
-rw-r--r-- | fs/ext4/namei.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c index 2a7f2dc..13f0cad 100644 --- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c @@ -1456,7 +1456,8 @@ restart: EXT4_ERROR_INODE(dir, "checksumming directory " "block %lu", (unsigned long)block); brelse(bh); - goto next; + ret = ERR_PTR(-EFSBADCRC); + goto cleanup_and_exit; } set_buffer_verified(bh); i = search_dirblock(bh, dir, &fname, |