From: fdmanana@kernel.org
To: linux-btrfs@vger.kernel.org
Subject: [PATCH v2 00/19] btrfs: fixes, cleanups and optimizations around fiemap
Date: Tue, 11 Oct 2022 13:16:50 +0100 [thread overview]
Message-ID: <cover.1665490018.git.fdmanana@suse.com> (raw)
In-Reply-To: <cover.1665396437.git.fdmanana@suse.com>
From: Filipe Manana <fdmanana@suse.com>
The first 3 patches are bug fixes, the first two fixing bugs in backref
walking that have been around since 2013 and 2017, respectively, while the
third 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 (06/19, 16/19, 18/19
and 19/19).
V2: Add one more patch to fix a long standing bug (since 2013) regarding
delayed data references during backref walking. Made it first patch
in the series since later patches touched the surrounding code and
it should backported to stable releases.
Filipe Manana (19):
btrfs: fix processing of delayed data refs during backref walking
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 | 489 ++++++++++++++++++++++++++++--------------
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, 483 insertions(+), 231 deletions(-)
--
2.35.1
next prev parent reply other threads:[~2022-10-11 12:17 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-10 10:22 [PATCH 00/18] btrfs: fixes, cleanups and optimizations around fiemap fdmanana
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 ` fdmanana [this message]
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.1665490018.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