From: Qu Wenruo <wqu@suse.com>
To: linux-btrfs@vger.kernel.org
Subject: [PATCH 00/19] btrfs: Move generic backref cache build functions to backref.c
Date: Tue, 3 Mar 2020 15:13:50 +0800 [thread overview]
Message-ID: <20200303071409.57982-1-wqu@suse.com> (raw)
The patchset is based on previous backref_cache_refactor branch, which
is further based on misc-next.
The whole series can be fetched from github:
https://github.com/adam900710/linux/tree/backref_cache_code_move
All the patches in previous branch is not touched at all, thus they are
not re-sent in this patchset.
Currently there are 3 major parts of build_backref_tree():
- ITERATION
This will do a breadth-first search, starts from the target bytenr,
and queue all parents into the backref cache.
The result is a temporary map, which is only single-directional, and
involved new backref nodes are not yet inserted into the cache.
- WEAVING
Finish the map to make it bi-directional, and insert new nodes into
the cache.
- CLEANUP
Cleanup the useless nodes, either remove it completely or add them
into the cache as detached.
For the ITERATION part, there are only limited locations coupled with
relocation.
And WEAVING part is completely independent from relocation.
While the CLEANUP part, although it has some relocation related code,
it's not a big hunk of code after all.
So, this patchset will move the ITERATION part, extracted as
backref_cache_add_one_tree_block(), and the WEAVING part, extracted as
backref_cache_finish_upper_links(), to backref.c, as the basis for later
reuse of backref_cache.
Qu Wenruo (19):
btrfs: Move backref node/edge/cache structure to backref.h
btrfs: Rename tree_entry to simple_node and export it
btrfs: relocation: Make reloc root search specific for relocation
backref cache
btrfs: relocation: Add backref_cache::pending_edge and
backref_cache::useless_node members
btrfs: relocation: Add backref_cache::fs_info member
btrfs: Move backref_cache_init() to backref.c
btrfs: Move alloc_backref_node() to backref.c
btrfs: Move alloc_backref_edge() to backref.c
btrfs: Move link_backref_edge() to backref.c
btrfs: Move free_backref_node() and free_backref_edge() to backref.h
btrfs: Move drop_backref_node() and needed facilities to backref.h
btrfs: Rename remove_backref_node() to cleanup_backref_node() and move
it to backref.c
btrfs: Move backref_cache_cleanup() to backref.c
btrfs: Rename backref_tree_panic() to backref_cache_panic(), and move
it to backref.c
btrfs: Rename should_ignore_root() to should_ignore_reloc_root() and
export it
btrfs: relocation: Open-code read_fs_root() for
handle_one_tree_backref()
btrfs: Rename handle_one_tree_block() to
backref_cache_add_one_tree_block() and move it to backref.c
btrfs: relocation: Move the target backref node insert code into
finish_upper_links()
btrfs: Rename finish_upper_links() to
backref_cache_finish_upper_links() and move it to backref.c
fs/btrfs/backref.c | 534 ++++++++++++++++++++++++++
fs/btrfs/backref.h | 226 +++++++++++
fs/btrfs/ctree.h | 3 +
fs/btrfs/misc.h | 54 +++
fs/btrfs/relocation.c | 870 ++++--------------------------------------
5 files changed, 892 insertions(+), 795 deletions(-)
--
2.25.1
next reply other threads:[~2020-03-03 7:14 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-03 7:13 Qu Wenruo [this message]
2020-03-03 7:13 ` [PATCH 01/19] btrfs: Move backref node/edge/cache structure to backref.h Qu Wenruo
2020-03-03 7:13 ` [PATCH 02/19] btrfs: Rename tree_entry to simple_node and export it Qu Wenruo
2020-03-03 7:13 ` [PATCH 03/19] btrfs: relocation: Make reloc root search specific for relocation backref cache Qu Wenruo
2020-03-03 7:13 ` [PATCH 04/19] btrfs: relocation: Add backref_cache::pending_edge and backref_cache::useless_node members Qu Wenruo
2020-03-03 7:13 ` [PATCH 05/19] btrfs: relocation: Add backref_cache::fs_info member Qu Wenruo
2020-03-03 7:13 ` [PATCH 06/19] btrfs: Move backref_cache_init() to backref.c Qu Wenruo
2020-03-03 7:13 ` [PATCH 07/19] btrfs: Move alloc_backref_node() " Qu Wenruo
2020-03-03 7:13 ` [PATCH 08/19] btrfs: Move alloc_backref_edge() " Qu Wenruo
2020-03-03 7:13 ` [PATCH 09/19] btrfs: Move link_backref_edge() " Qu Wenruo
2020-03-03 7:14 ` [PATCH 10/19] btrfs: Move free_backref_node() and free_backref_edge() to backref.h Qu Wenruo
2020-03-03 7:14 ` [PATCH 11/19] btrfs: Move drop_backref_node() and needed facilities " Qu Wenruo
2020-03-03 7:14 ` [PATCH 12/19] btrfs: Rename remove_backref_node() to cleanup_backref_node() and move it to backref.c Qu Wenruo
2020-03-03 7:14 ` [PATCH 13/19] btrfs: Move backref_cache_cleanup() " Qu Wenruo
2020-03-03 7:14 ` [PATCH 14/19] btrfs: Rename backref_tree_panic() to backref_cache_panic(), and move it " Qu Wenruo
2020-03-03 7:14 ` [PATCH 15/19] btrfs: Rename should_ignore_root() to should_ignore_reloc_root() and export it Qu Wenruo
2020-03-03 7:14 ` [PATCH 16/19] btrfs: relocation: Open-code read_fs_root() for handle_one_tree_backref() Qu Wenruo
2020-03-03 7:14 ` [PATCH 17/19] btrfs: Rename handle_one_tree_block() to backref_cache_add_one_tree_block() and move it to backref.c Qu Wenruo
2020-03-03 7:14 ` [PATCH 18/19] btrfs: relocation: Move the target backref node insert code into finish_upper_links() Qu Wenruo
2020-03-03 7:14 ` [PATCH 19/19] btrfs: Rename finish_upper_links() to backref_cache_finish_upper_links() and move it to backref.c Qu Wenruo
2020-03-03 16:30 ` [PATCH 00/19] btrfs: Move generic backref cache build functions " David Sterba
2020-03-05 5:28 ` Qu Wenruo
2020-03-03 21:22 ` Josef Bacik
2020-03-04 4:54 ` Qu Wenruo
2020-03-04 13:40 ` 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=20200303071409.57982-1-wqu@suse.com \
--to=wqu@suse.com \
--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