All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Sterba <dsterba@suse.com>
To: linux-btrfs@vger.kernel.org
Cc: David Sterba <dsterba@suse.com>
Subject: [PATCH 07/14] btrfs: send: handle unexpected inode in header process_recorded_refs()
Date: Thu,  8 Feb 2024 09:59:52 +0100	[thread overview]
Message-ID: <d2dbc5d3a569388632e60a375d0cb58a2ca50274.1707382595.git.dsterba@suse.com> (raw)
In-Reply-To: <cover.1707382595.git.dsterba@suse.com>

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>
---
 fs/btrfs/send.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c
index 1bff7b3008ac..778c2da1c9dd 100644
--- a/fs/btrfs/send.c
+++ b/fs/btrfs/send.c
@@ -4186,7 +4186,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) {
-- 
2.42.1


  parent reply	other threads:[~2024-02-08  9:00 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-08  8:59 [PATCH 00/14] More error handling and BUG_ON cleanups David Sterba
2024-02-08  8:59 ` [PATCH 01/14] btrfs: push errors up from add_async_extent() David Sterba
2024-02-08  8:59 ` [PATCH 02/14] btrfs: update comment and drop assertion in extent item lookup in find_parent_nodes() David Sterba
2024-02-08  8:59 ` [PATCH 03/14] btrfs: handle invalid extent item reference found in extent_from_logical() David Sterba
2024-02-08  8:59 ` [PATCH 04/14] btrfs: handle invalid extent item reference found in find_first_extent_item() David Sterba
2024-02-08  8:59 ` [PATCH 05/14] btrfs: handle invalid root reference found in may_destroy_subvol() David Sterba
2024-02-08  8:59 ` [PATCH 06/14] btrfs: send: handle unexpected data in header buffer in begin_cmd() David Sterba
2024-02-08  8:59 ` David Sterba [this message]
2024-02-08  8:59 ` [PATCH 08/14] btrfs: send: handle path ref underflow in header iterate_inode_ref() David Sterba
2024-02-08  8:59 ` [PATCH 09/14] btrfs: change BUG_ON to assertion in tree_move_down() David Sterba
2024-02-08  8:59 ` [PATCH 10/14] btrfs: change BUG_ONs to assertions in btrfs_qgroup_trace_subtree() David Sterba
2024-02-08  9:00 ` [PATCH 11/14] btrfs: delete pointless BUG_ON check on quota root in btrfs_qgroup_account_extent() David Sterba
2024-02-08  9:00 ` [PATCH 12/14] btrfs: delete pointless BUG_ONs on extent item size David Sterba
2024-02-08  9:00 ` [PATCH 13/14] btrfs: handle unexpected parent block offset in btrfs_alloc_tree_block() David Sterba
2024-02-08  9:00 ` [PATCH 14/14] btrfs: delete BUG_ON in btrfs_init_locked_inode() David Sterba
2024-02-08  9:50 ` [PATCH 00/14] More error handling and BUG_ON cleanups Qu Wenruo
2024-02-09  2:03   ` David Sterba
2024-02-13 19:05   ` David Sterba

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d2dbc5d3a569388632e60a375d0cb58a2ca50274.1707382595.git.dsterba@suse.com \
    --to=dsterba@suse.com \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.