public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
* simplify extent_buffer reading and writing
@ 2023-03-09  9:05 Christoph Hellwig
  2023-03-09  9:05 ` [PATCH 01/20] btrfs: mark extent_buffer_under_io static Christoph Hellwig
                   ` (19 more replies)
  0 siblings, 20 replies; 74+ messages in thread
From: Christoph Hellwig @ 2023-03-09  9:05 UTC (permalink / raw)
  To: Chris Mason, Josef Bacik, David Sterba; +Cc: linux-btrfs

Hi all,

currently reading and writing of extent_buffers is very complicated as it
tries to work in a page oriented way.  Switch as much as possible to work
based on the extent_buffer object to simplify the code.

I suspect in the long run switching to dedicated object based writeback
and reclaim similar to the XFS buffer cache would be a good idea, but as
that involves pretty big behavior changes that's better left for a
separate series.

Diffstat:
 compression.c |    4 
 compression.h |    2 
 disk-io.c     |  276 +++------------------------
 disk-io.h     |    5 
 extent_io.c   |  589 ++++++++++++++--------------------------------------------
 extent_io.h   |    3 
 6 files changed, 192 insertions(+), 687 deletions(-)

^ permalink raw reply	[flat|nested] 74+ messages in thread

end of thread, other threads:[~2023-03-20  5:46 UTC | newest]

Thread overview: 74+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-09  9:05 simplify extent_buffer reading and writing Christoph Hellwig
2023-03-09  9:05 ` [PATCH 01/20] btrfs: mark extent_buffer_under_io static Christoph Hellwig
2023-03-09 11:06   ` Johannes Thumshirn
2023-03-10  7:26   ` Qu Wenruo
2023-03-09  9:05 ` [PATCH 02/20] btrfs: move setting the buffer uptodate out of validate_extent_buffer Christoph Hellwig
2023-03-09 11:10   ` Johannes Thumshirn
2023-03-10  7:27   ` Qu Wenruo
2023-03-09  9:05 ` [PATCH 03/20] btrfs: merge verify_parent_transid and btrfs_buffer_uptodate Christoph Hellwig
2023-03-09 11:17   ` Johannes Thumshirn
2023-03-09 15:21     ` Christoph Hellwig
2023-03-10  7:28   ` Qu Wenruo
2023-03-09  9:05 ` [PATCH 04/20] btrfs: always read the entire extent_buffer Christoph Hellwig
2023-03-09 11:29   ` Johannes Thumshirn
2023-03-09 15:21     ` Christoph Hellwig
2023-03-14  6:09     ` Christoph Hellwig
2023-03-17 23:16     ` David Sterba
2023-03-20  5:46       ` Christoph Hellwig
2023-03-10  7:35   ` Qu Wenruo
2023-03-09  9:05 ` [PATCH 05/20] btrfs: simplify extent buffer reading Christoph Hellwig
2023-03-09 11:59   ` Johannes Thumshirn
2023-03-10  7:42   ` Qu Wenruo
2023-03-10  7:47     ` Christoph Hellwig
2023-03-10  8:02       ` Qu Wenruo
2023-03-10  8:03         ` Christoph Hellwig
2023-03-10  8:07           ` Qu Wenruo
2023-03-10  8:15             ` Christoph Hellwig
2023-03-10  9:14               ` Qu Wenruo
2023-03-10 10:54       ` Filipe Manana
2023-03-10 11:12         ` Qu Wenruo
2023-03-09  9:05 ` [PATCH 06/20] btrfs: remove the mirror_num argument to btrfs_submit_compressed_read Christoph Hellwig
2023-03-09 12:58   ` Johannes Thumshirn
2023-03-09  9:05 ` [PATCH 07/20] btrfs: simplify the read_extent_buffer end_io handler Christoph Hellwig
2023-03-09 13:08   ` Johannes Thumshirn
2023-03-10  8:14   ` Qu Wenruo
2023-03-10  8:17     ` Christoph Hellwig
2023-03-10  8:30       ` Qu Wenruo
2023-03-10  9:30   ` Qu Wenruo
2023-03-09  9:05 ` [PATCH 08/20] btrfs: do not try to unlock the extent for non-subpage metadata reads Christoph Hellwig
2023-03-09 13:13   ` Johannes Thumshirn
2023-03-09  9:05 ` [PATCH 09/20] btrfs: return bool from lock_extent_buffer_for_io Christoph Hellwig
2023-03-09 13:17   ` Johannes Thumshirn
2023-03-09  9:05 ` [PATCH 10/20] btrfs: submit a writeback bio per extent_buffer Christoph Hellwig
2023-03-09 13:35   ` Johannes Thumshirn
2023-03-09  9:05 ` [PATCH 11/20] btrfs: move page locking from lock_extent_buffer_for_io to write_one_eb Christoph Hellwig
2023-03-09 13:46   ` Johannes Thumshirn
2023-03-09  9:05 ` [PATCH 12/20] btrfs: simplify extent buffer writing Christoph Hellwig
2023-03-09 14:00   ` Johannes Thumshirn
2023-03-09 15:22     ` Christoph Hellwig
2023-03-10  8:34   ` Qu Wenruo
2023-03-10  8:41     ` Christoph Hellwig
2023-03-09  9:05 ` [PATCH 13/20] btrfs: simplify the extent_buffer write end_io handler Christoph Hellwig
2023-03-09 14:10   ` Johannes Thumshirn
2023-03-09 15:22     ` Christoph Hellwig
2023-03-10  8:44   ` Qu Wenruo
2023-03-10 11:47     ` Christoph Hellwig
2023-03-09  9:05 ` [PATCH 14/20] btrfs: simplify btree block checksumming Christoph Hellwig
2023-03-09 15:51   ` Johannes Thumshirn
2023-03-10  8:57   ` Qu Wenruo
2023-03-09  9:05 ` [PATCH 15/20] btrfs: remove the io_pages field in struct extent_buffer Christoph Hellwig
2023-03-09 16:01   ` Johannes Thumshirn
2023-03-10  8:53   ` Qu Wenruo
2023-03-10 11:50     ` Christoph Hellwig
2023-03-09  9:05 ` [PATCH 16/20] btrfs: stop using PageError for extent_buffers Christoph Hellwig
2023-03-09 16:05   ` Johannes Thumshirn
2023-03-09  9:05 ` [PATCH 17/20] btrfs: don't check for uptodate pages in read_extent_buffer_pages Christoph Hellwig
2023-03-09 16:10   ` Johannes Thumshirn
2023-03-10  9:08   ` Qu Wenruo
2023-03-10 11:54     ` Christoph Hellwig
2023-03-14  6:12     ` Christoph Hellwig
2023-03-09  9:05 ` [PATCH 18/20] btrfs: stop using lock_extent in btrfs_buffer_uptodate Christoph Hellwig
2023-03-09  9:05 ` [PATCH 19/20] btrfs: use per-buffer locking for extent_buffer reading Christoph Hellwig
2023-03-09 17:12   ` Johannes Thumshirn
2023-03-09  9:05 ` [PATCH 20/20] btrfs: merge write_one_subpage_eb into write_one_eb Christoph Hellwig
2023-03-09 17:28   ` Johannes Thumshirn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox