btrfs: send: handle unexpected inode in header process_recorded_refs()

BugLink: https://bugs.launchpad.net/bugs/2084005

[ Upstream commit 5d2288711ccc483feca73151c46ee835bda17839 ]

Change BUG_ON to proper error handling when an unexpected inode number
is encountered. As the comment says this should never happen.

Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Koichiro Den <koichiro.den@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
This commit is contained in:
David Sterba
2024-02-06 22:47:13 +01:00
committed by Mehmet Basaran
parent e682342e5b
commit 96af5cc41f
+7 -1
View File
@@ -4195,7 +4195,13 @@ static int process_recorded_refs(struct send_ctx *sctx, int *pending_move)
* This should never happen as the root dir always has the same ref
* which is always '..'
*/
BUG_ON(sctx->cur_ino <= BTRFS_FIRST_FREE_OBJECTID);
if (unlikely(sctx->cur_ino <= BTRFS_FIRST_FREE_OBJECTID)) {
btrfs_err(fs_info,
"send: unexpected inode %llu in process_recorded_refs()",
sctx->cur_ino);
ret = -EINVAL;
goto out;
}
valid_path = fs_path_alloc();
if (!valid_path) {