Files
linux/fs
Qu Wenruo 86ccbb4d2a btrfs: handle errors properly inside btrfs_submit_compressed_read()
There are quite some BUG_ON()s inside btrfs_submit_compressed_read(),
namely all errors inside the for() loop relies on BUG_ON() to handle
-ENOMEM.

Handle these errors properly by:

- Wait for submitted bios to finish first
  Using wake_var_event() APIs to wait without introducing extra memory
  overhead inside compressed_bio.
  This allows us to wait for any submitted bio to finish, while still
  keeps the compressed_bio from being freed.

- Introduce finish_compressed_bio_read() to finish the compressed_bio

- Properly end the bio and finish compressed_bio when error happens

Now in btrfs_submit_compressed_read() even when the bio submission
failed, we can properly handle the error without triggering BUG_ON().

Signed-off-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2021-10-26 19:08:04 +02:00
..
2021-08-19 09:02:55 +09:00
2021-10-19 09:36:06 +02:00
2021-04-12 15:04:29 +02:00
2021-08-26 22:28:02 +02:00
2021-09-10 09:46:48 -07:00
2021-06-29 10:53:48 -07:00
2021-08-16 10:50:32 -06:00
2021-08-19 09:02:55 +09:00
2021-10-19 17:09:34 -06:00
2021-06-29 10:53:48 -07:00
2021-08-18 22:08:24 +02:00
2021-02-13 17:17:53 +01:00
2021-08-10 17:57:22 +02:00