Filipe Manana 2c58c3931e btrfs: remove BUG() after failure to insert delayed dir index item
Instead of calling BUG() when we fail to insert a delayed dir index item
into the delayed node's tree, we can just release all the resources we
have allocated/acquired before and return the error to the caller. This is
fine because all existing call chains undo anything they have done before
calling btrfs_insert_delayed_dir_index() or BUG_ON (when creating pending
snapshots in the transaction commit path).

So remove the BUG() call and do proper error handling.

This relates to a syzbot report linked below, but does not fix it because
it only prevents hitting a BUG(), it does not fix the issue where somehow
we attempt to use twice the same index number for different index items.

Link: https://lore.kernel.org/linux-btrfs/00000000000036e1290603e097e0@google.com/
CC: stable@vger.kernel.org # 5.4+
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2023-09-08 14:11:59 +02:00
..
2023-06-26 10:14:36 -07:00
2023-06-29 13:27:50 -07:00
\n
2023-06-29 13:39:51 -07:00
2023-07-05 14:14:37 -07:00
2023-07-19 11:00:27 -07:00
2023-08-07 18:42:04 +02:00
2023-06-27 17:10:27 -07:00
2023-06-26 11:52:12 -07:00
2023-07-03 12:56:23 -07:00
2023-07-01 14:38:25 -07:00
2023-07-01 14:38:25 -07:00
2023-08-03 09:26:34 -07:00
2023-07-07 14:59:38 -07:00
2023-06-27 21:21:32 -07:00
2023-03-14 12:56:30 -06:00
2023-06-05 16:50:30 +02:00
2023-08-16 00:26:07 -05:00
2023-06-15 13:37:53 +02:00
2023-06-26 11:52:12 -07:00
\n
2023-06-29 13:39:51 -07:00
2023-08-08 14:59:49 -07:00
2023-03-30 08:51:48 +02:00
2023-06-28 20:35:21 -07:00
\n
2023-06-29 13:39:51 -07:00
2023-06-26 09:50:21 -07:00
2023-05-17 09:16:59 +02:00
2023-06-26 09:50:21 -07:00
\n
2023-06-29 13:31:44 -07:00
2023-02-20 11:53:11 -08:00
2023-08-12 09:18:47 -07:00
2023-06-26 10:14:36 -07:00
2023-06-26 12:47:20 -07:00
2023-01-19 09:24:30 +01:00
2023-07-04 10:20:29 +02:00
2023-06-26 10:27:04 -07:00
2023-05-19 04:30:22 +02:00
2023-05-19 04:30:22 +02:00
2023-03-06 09:59:20 +01:00
2023-02-20 11:53:11 -08:00
\n
2023-06-29 13:39:51 -07:00
2023-02-20 11:53:11 -08:00