public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
From: fdmanana@kernel.org
To: linux-btrfs@vger.kernel.org
Subject: [PATCH 00/18] btrfs: fixes, cleanups and optimizations around fiemap
Date: Mon, 10 Oct 2022 11:22:02 +0100	[thread overview]
Message-ID: <cover.1665396437.git.fdmanana@suse.com> (raw)

From: Filipe Manana <fdmanana@suse.com>

The first two patches are bug fixes, the first one fixing a bug in backref
walking that has been around for 5 years, while the second one fixes a bug
introduced in this merge window.

The remaining are performance optimizations in the fiemap code path, as
well as some cleanups and refactorings to support them. Results and tests
are found in the changelogs of individual patches (05/18, 15/18, 17/18
and 18/18).

Filipe Manana (18):
  btrfs: fix processing of delayed tree block refs during backref walking
  btrfs: ignore fiemap path cache if we have multiple leaves for a data extent
  btrfs: get the next extent map during fiemap/lseek more efficiently
  btrfs: skip unnecessary extent map searches during fiemap and lseek
  btrfs: skip unnecessary delalloc search during fiemap and lseek
  btrfs: drop pointless memset when cloning extent buffer
  btrfs: drop redundant bflags initialization when allocating extent buffer
  btrfs: remove checks for a root with id 0 during backref walking
  btrfs: remove checks for a 0 inode number during backref walking
  btrfs: directly pass the inode to btrfs_is_data_extent_shared()
  btrfs: turn the backref sharedness check cache into a context object
  btrfs: move ulists to data extent sharedness check context
  btrfs: remove roots ulist when checking data extent sharedness
  btrfs: remove useless logic when finding parent nodes
  btrfs: cache sharedness of the last few data extents during fiemap
  btrfs: move up backref sharedness cache store and lookup functions
  btrfs: avoid duplicated resolution of indirect backrefs during fiemap
  btrfs: avoid unnecessary resolution of indirect backrefs during fiemap

 fs/btrfs/backref.c    | 462 ++++++++++++++++++++++++++++--------------
 fs/btrfs/backref.h    |  55 ++++-
 fs/btrfs/extent_io.c  |  68 +++----
 fs/btrfs/extent_map.c |  31 ++-
 fs/btrfs/extent_map.h |   2 +
 fs/btrfs/file.c       |  69 +++++--
 6 files changed, 462 insertions(+), 225 deletions(-)

-- 
2.35.1


             reply	other threads:[~2022-10-10 10:22 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-10 10:22 fdmanana [this message]
2022-10-10 10:22 ` [PATCH 01/18] btrfs: fix processing of delayed tree block refs during backref walking fdmanana
2022-10-10 10:22 ` [PATCH 02/18] btrfs: ignore fiemap path cache if we have multiple leaves for a data extent fdmanana
2022-10-10 10:22 ` [PATCH 03/18] btrfs: get the next extent map during fiemap/lseek more efficiently fdmanana
2022-10-10 10:22 ` [PATCH 04/18] btrfs: skip unnecessary extent map searches during fiemap and lseek fdmanana
2022-10-10 10:22 ` [PATCH 05/18] btrfs: skip unnecessary delalloc search " fdmanana
2022-10-10 10:22 ` [PATCH 06/18] btrfs: drop pointless memset when cloning extent buffer fdmanana
2022-10-10 10:22 ` [PATCH 07/18] btrfs: drop redundant bflags initialization when allocating " fdmanana
2022-10-10 10:22 ` [PATCH 08/18] btrfs: remove checks for a root with id 0 during backref walking fdmanana
2022-10-10 10:22 ` [PATCH 09/18] btrfs: remove checks for a 0 inode number " fdmanana
2022-10-10 10:22 ` [PATCH 10/18] btrfs: directly pass the inode to btrfs_is_data_extent_shared() fdmanana
2022-10-10 10:22 ` [PATCH 11/18] btrfs: turn the backref sharedness check cache into a context object fdmanana
2022-10-10 10:22 ` [PATCH 12/18] btrfs: move ulists to data extent sharedness check context fdmanana
2022-10-10 10:22 ` [PATCH 13/18] btrfs: remove roots ulist when checking data extent sharedness fdmanana
2022-10-10 10:22 ` [PATCH 14/18] btrfs: remove useless logic when finding parent nodes fdmanana
2022-10-10 10:22 ` [PATCH 15/18] btrfs: cache sharedness of the last few data extents during fiemap fdmanana
2022-10-10 10:22 ` [PATCH 16/18] btrfs: move up backref sharedness cache store and lookup functions fdmanana
2022-10-10 10:22 ` [PATCH 17/18] btrfs: avoid duplicated resolution of indirect backrefs during fiemap fdmanana
2022-10-10 10:22 ` [PATCH 18/18] btrfs: avoid unnecessary " fdmanana
2022-10-11 12:16 ` [PATCH v2 00/19] btrfs: fixes, cleanups and optimizations around fiemap fdmanana
2022-10-11 12:16   ` [PATCH v2 01/19] btrfs: fix processing of delayed data refs during backref walking fdmanana
2022-10-11 12:16   ` [PATCH v2 02/19] btrfs: fix processing of delayed tree block " fdmanana
2022-10-11 12:16   ` [PATCH v2 03/19] btrfs: ignore fiemap path cache if we have multiple leaves for a data extent fdmanana
2022-10-11 12:16   ` [PATCH v2 04/19] btrfs: get the next extent map during fiemap/lseek more efficiently fdmanana
2022-10-11 12:16   ` [PATCH v2 05/19] btrfs: skip unnecessary extent map searches during fiemap and lseek fdmanana
2022-10-11 12:16   ` [PATCH v2 06/19] btrfs: skip unnecessary delalloc search " fdmanana
2022-10-11 12:16   ` [PATCH v2 07/19] btrfs: drop pointless memset when cloning extent buffer fdmanana
2022-10-11 12:16   ` [PATCH v2 08/19] btrfs: drop redundant bflags initialization when allocating " fdmanana
2022-10-11 12:16   ` [PATCH v2 09/19] btrfs: remove checks for a root with id 0 during backref walking fdmanana
2022-10-11 12:17   ` [PATCH v2 10/19] btrfs: remove checks for a 0 inode number " fdmanana
2022-10-11 12:17   ` [PATCH v2 11/19] btrfs: directly pass the inode to btrfs_is_data_extent_shared() fdmanana
2022-10-11 12:17   ` [PATCH v2 12/19] btrfs: turn the backref sharedness check cache into a context object fdmanana
2022-10-11 12:17   ` [PATCH v2 13/19] btrfs: move ulists to data extent sharedness check context fdmanana
2022-10-11 12:17   ` [PATCH v2 14/19] btrfs: remove roots ulist when checking data extent sharedness fdmanana
2022-10-11 12:17   ` [PATCH v2 15/19] btrfs: remove useless logic when finding parent nodes fdmanana
2022-10-11 12:17   ` [PATCH v2 16/19] btrfs: cache sharedness of the last few data extents during fiemap fdmanana
2022-10-11 12:17   ` [PATCH v2 17/19] btrfs: move up backref sharedness cache store and lookup functions fdmanana
2022-10-11 12:17   ` [PATCH v2 18/19] btrfs: avoid duplicated resolution of indirect backrefs during fiemap fdmanana
2022-10-11 12:17   ` [PATCH v2 19/19] btrfs: avoid unnecessary " fdmanana
2022-10-11 12:54   ` [PATCH v2 00/19] btrfs: fixes, cleanups and optimizations around fiemap 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=cover.1665396437.git.fdmanana@suse.com \
    --to=fdmanana@kernel.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox