]> git.baikalelectronics.ru Git - kernel.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)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 25 Nov 2018 22:20:31 +0000 (17:20 -0500)
commit09a4e54214a9ca33b69493bb241e644ece1317c7
tree7504b10469a8cbe92672f54e664ae5495e797c50
parentc1cd78c0e0fca39e5e5c6c6ccb3b1437a1beeacd
ext4: add ext4_sb_bread() to disambiguate ENOMEM cases

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: 759511ee0bc0 ("ext4: initial copy of files from ext3")
Cc: stable@kernel.org # 2.6.19
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/ext4.h
fs/ext4/migrate.c
fs/ext4/resize.c
fs/ext4/super.c
fs/ext4/xattr.c