Linux Btrfs filesystem development
 help / color / mirror / Atom feed
* add an ordered_extent pointer to struct btrfs_bio v2
@ 2023-05-31  7:53 Christoph Hellwig
  2023-05-31  7:53 ` [PATCH 01/17] btrfs: fix file_offset for REQ_BTRFS_ONE_ORDERED bios that get split Christoph Hellwig
                   ` (18 more replies)
  0 siblings, 19 replies; 23+ messages in thread
From: Christoph Hellwig @ 2023-05-31  7:53 UTC (permalink / raw)
  To: Chris Mason, Josef Bacik, David Sterba; +Cc: linux-btrfs

Hi all,

this series adds a pointer to the ordered_extent to struct btrfs_bio to
reduce the repeated lookups in the rbtree.  For non-buffered I/Os the
I/O will now never do a lookup of the ordered extent tree (other places
like waiting for I/O still do).  For buffered I/O there is still a lookup
as the writepages code is structured in a way that makes it impossible
to just pass the ordered_extent down.  With some of the work from Goldwyn
this should eventually become possible as well, though.

Changes since v1:
 - rebased to the latest misc-next tree with the changes to not split
   ordered extents for zoned writes
 - rename is_data_bio to is_data_bbio
 - add a new bbio_has_ordered_extent helper

Diffstat:
 fs/btrfs/bio.c               |   61 ++++++++++++---
 fs/btrfs/bio.h               |   12 ---
 fs/btrfs/compression.c       |   40 ++++------
 fs/btrfs/compression.h       |    5 -
 fs/btrfs/extent_io.c         |   28 +++----
 fs/btrfs/file-item.c         |   59 ---------------
 fs/btrfs/inode.c             |  108 ++++++++++++++-------------
 fs/btrfs/ordered-data.c      |  169 +++++++++++++++++++++++--------------------
 fs/btrfs/ordered-data.h      |    7 -
 fs/btrfs/relocation.c        |   36 +++------
 fs/btrfs/relocation.h        |    2 
 include/trace/events/btrfs.h |   29 +++++++
 12 files changed, 278 insertions(+), 278 deletions(-)

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

end of thread, other threads:[~2023-06-12 14:04 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-31  7:53 add an ordered_extent pointer to struct btrfs_bio v2 Christoph Hellwig
2023-05-31  7:53 ` [PATCH 01/17] btrfs: fix file_offset for REQ_BTRFS_ONE_ORDERED bios that get split Christoph Hellwig
2023-05-31  7:53 ` [PATCH 02/17] btrfs: limit write bios to a single ordered extent Christoph Hellwig
2023-05-31  7:53 ` [PATCH 03/17] btrfs: merge the two calls to btrfs_add_ordered_extent in run_delalloc_nocow Christoph Hellwig
2023-06-01 12:17   ` Johannes Thumshirn
2023-05-31  7:53 ` [PATCH 04/17] btrfs: pass an ordered_extent to btrfs_reloc_clone_csums Christoph Hellwig
2023-05-31  7:53 ` [PATCH 05/17] btrfs: pass an ordered_extent to btrfs_submit_compressed_write Christoph Hellwig
2023-05-31  7:53 ` [PATCH 06/17] btrfs: remove btrfs_add_ordered_extent Christoph Hellwig
2023-05-31  7:54 ` [PATCH 07/17] btrfs: add a is_data_bbio helper Christoph Hellwig
2023-06-01 11:50   ` Johannes Thumshirn
2023-05-31  7:54 ` [PATCH 08/17] btrfs: open code btrfs_bio_end_io in btrfs_dio_submit_io Christoph Hellwig
2023-05-31  7:54 ` [PATCH 09/17] btrfs: add an ordered_extent pointer to struct btrfs_bio Christoph Hellwig
2023-05-31  7:54 ` [PATCH 10/17] btrfs: use bbio->ordered in btrfs_csum_one_bio Christoph Hellwig
2023-05-31  7:54 ` [PATCH 11/17] btrfs: factor out a can_finish_ordered_extent helper Christoph Hellwig
2023-05-31  7:54 ` [PATCH 12/17] btrfs: factor out a btrfs_queue_ordered_fn helper Christoph Hellwig
2023-05-31  7:54 ` [PATCH 13/17] btrfs: add a btrfs_finish_ordered_extent helper Christoph Hellwig
2023-06-01 11:50   ` Johannes Thumshirn
2023-05-31  7:54 ` [PATCH 14/17] btrfs: open code end_extent_writepage in end_bio_extent_writepage Christoph Hellwig
2023-05-31  7:54 ` [PATCH 15/17] btrfs: use btrfs_finish_ordered_extent to complete compressed writes Christoph Hellwig
2023-05-31  7:54 ` [PATCH 16/17] btrfs: use btrfs_finish_ordered_extent to complete direct writes Christoph Hellwig
2023-05-31  7:54 ` [PATCH 17/17] btrfs: use btrfs_finish_ordered_extent to complete buffered writes Christoph Hellwig
2023-05-31 16:33 ` add an ordered_extent pointer to struct btrfs_bio v2 Josef Bacik
2023-06-12 13:57 ` David Sterba

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