Jiri Slaby b6dacc
From: Theodore Ts'o <tytso@mit.edu>
Jiri Slaby b6dacc
Date: Fri, 12 May 2023 15:16:27 -0400
Jiri Slaby b6dacc
Subject: [PATCH] ext4: bail out of ext4_xattr_ibody_get() fails for any reason
Jiri Slaby b6dacc
References: bsc#1012628
Jiri Slaby b6dacc
Patch-mainline: 6.3.3
Jiri Slaby b6dacc
Git-commit: 2a534e1d0d1591e951f9ece2fb460b2ff92edabd
Jiri Slaby b6dacc
Jiri Slaby b6dacc
commit 2a534e1d0d1591e951f9ece2fb460b2ff92edabd upstream.
Jiri Slaby b6dacc
Jiri Slaby b6dacc
In ext4_update_inline_data(), if ext4_xattr_ibody_get() fails for any
Jiri Slaby b6dacc
reason, it's best if we just fail as opposed to stumbling on,
Jiri Slaby b6dacc
especially if the failure is EFSCORRUPTED.
Jiri Slaby b6dacc
Jiri Slaby b6dacc
Cc: stable@kernel.org
Jiri Slaby b6dacc
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Jiri Slaby b6dacc
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Jiri Slaby b6dacc
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Jiri Slaby b6dacc
---
Jiri Slaby b6dacc
 fs/ext4/inline.c | 2 +-
Jiri Slaby b6dacc
 1 file changed, 1 insertion(+), 1 deletion(-)
Jiri Slaby b6dacc
Jiri Slaby b6dacc
diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c
Jiri Slaby b6dacc
index db1ca23d..cb36037f 100644
Jiri Slaby b6dacc
--- a/fs/ext4/inline.c
Jiri Slaby b6dacc
+++ b/fs/ext4/inline.c
Jiri Slaby b6dacc
@@ -360,7 +360,7 @@ static int ext4_update_inline_data(handle_t *handle, struct inode *inode,
Jiri Slaby b6dacc
 
Jiri Slaby b6dacc
 	error = ext4_xattr_ibody_get(inode, i.name_index, i.name,
Jiri Slaby b6dacc
 				     value, len);
Jiri Slaby b6dacc
-	if (error == -ENODATA)
Jiri Slaby b6dacc
+	if (error < 0)
Jiri Slaby b6dacc
 		goto out;
Jiri Slaby b6dacc
 
Jiri Slaby b6dacc
 	BUFFER_TRACE(is.iloc.bh, "get_write_access");
Jiri Slaby b6dacc
-- 
Jiri Slaby b6dacc
2.35.3
Jiri Slaby b6dacc