]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
ext4: add ext4_sb_bread() to disambiguate ENOMEM cases
authorTheodore Ts'o <tytso@mit.edu>
Sun, 25 Nov 2018 22:20:31 +0000 (17:20 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 9 Jan 2019 16:45:57 +0000 (17:45 +0100)
commit81313ed2c705d958744882a269bf4a5e3ddec95e
tree1f2f85dc755cc1c04c00a72da996ef52e58229fd
parente6824c0bfb4e72b4c16cbfb6b7bbf5e19f2e9069
ext4: add ext4_sb_bread() to disambiguate ENOMEM cases

commit fb265c9cb49e2074ddcdd4de99728aefdd3b3592 upstream.

Today, when sb_bread() returns NULL, this can either be because of an
I/O error or because the system failed to allocate the buffer.  Since
it's an old interface, changing would require changing many call
sites.

So instead we create our own ext4_sb_bread(), which also allows us to
set the REQ_META flag.

Also fixed a problem in the xattr code where a NULL return in a
function could also mean that the xattr was not found, which could
lead to the wrong error getting returned to userspace.

Fixes: ac27a0ec112a ("ext4: initial copy of files from ext3")
Cc: stable@kernel.org # 2.6.19
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/ext4/ext4.h
fs/ext4/migrate.c
fs/ext4/resize.c
fs/ext4/super.c
fs/ext4/xattr.c