diff options
author | Khazhismel Kumykov <khazhy@google.com> | 2017-06-23 06:29:05 +0200 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2017-06-23 06:29:05 +0200 |
commit | 6febe6f253a5bb5c7ac2080d688bd4b75e019d4d (patch) | |
tree | f684f8158e8451b55c4007f30a6b4023d04281dd /fs/ext4 | |
parent | ext4: forbid encrypting root directory (diff) | |
download | linux-6febe6f253a5bb5c7ac2080d688bd4b75e019d4d.tar.xz linux-6febe6f253a5bb5c7ac2080d688bd4b75e019d4d.zip |
ext4: return EIO on read error in ext4_find_entry
Previously, a read error would be ignored and we would eventually return
NULL from ext4_find_entry, which signals "no such file or directory". We
should be returning EIO.
Signed-off-by: Khazhismel Kumykov <khazhy@google.com>
Diffstat (limited to 'fs/ext4')
-rw-r--r-- | fs/ext4/namei.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c index 423e1f761768..2a7f2dc7f4dd 100644 --- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c @@ -1442,11 +1442,11 @@ restart: goto next; wait_on_buffer(bh); if (!buffer_uptodate(bh)) { - /* read error, skip block & hope for the best */ EXT4_ERROR_INODE(dir, "reading directory lblock %lu", (unsigned long) block); brelse(bh); - goto next; + ret = ERR_PTR(-EIO); + goto cleanup_and_exit; } if (!buffer_verified(bh) && !is_dx_internal_node(dir, block, |