All of lore.kernel.org
 help / color / mirror / Atom feed
From: damenly.su@gmail.com
To: linux-btrfs@vger.kernel.org
Cc: Su Yue <Damenly_Su@gmx.com>
Subject: [PATCH V2 00/10] unify origanization structure of block group cache
Date: Wed, 18 Dec 2019 13:18:39 +0800	[thread overview]
Message-ID: <20191218051849.2587-1-Damenly_Su@gmx.com> (raw)

From: Su Yue <Damenly_Su@gmx.com>

In progs, block group caches are stored in btrfs_fs_info::block_group_cache
whose type is cache_extent. All block group caches adding/finding/freeing
are done in the misleading set/clear_extent_bits ways. However, kernel
side uses red-black tree structure in btrfs_fs_info directly. The
latter's structure is more reasonable and intuitive.

This patchset transforms structure of block group caches from cache_extent
to red-black tree and list.

patch[1] handles error to avoid warning after reform.
patch[2-6] are about rb tree reform things in preparation.
patch[7-8] are about dirty block groups linked in transaction in preparation.
patch[9] does replace works in action.
patch[10] does cleanup.

This patchset passed progs tests and did not cause any regression.

---
Changelog:
v2:
   Adjust block group cache tree seach and lookup functions to
   progs behaviors.
   Use rbtree_postorder_for_each_entry_safe() in patch[9] (Qu WenRuo).
   Add reviewed-by tags.

Su Yue (10):
  btrfs-progs: handle error if btrfs_write_one_block_group() failed
  btrfs-progs: block_group: add rb tree related memebers
  btrfs-progs: port block group cache tree insertion and lookup
    functions
  btrfs-progs: reform the function block_group_cache_tree_search()
  btrfs-progs: adjust ported block group lookup functions in kernel
    version
  btrfs-progs: abstract function btrfs_add_block_group_cache()
  block-progs: block_group: add dirty_bgs list related memebers
  btrfs-progs: pass @trans to functions touch dirty block groups
  btrfs-progs: reform block groups caches structure
  btrfs-progs: cleanups after block group cache reform

 check/main.c                |   6 +-
 check/mode-lowmem.c         |   6 +-
 cmds/rescue-chunk-recover.c |  10 +-
 ctree.h                     |  29 ++--
 disk-io.c                   |   4 +-
 extent-tree.c               | 304 +++++++++++++++---------------------
 extent_io.h                 |   2 -
 image/main.c                |  10 +-
 transaction.c               |   8 +-
 transaction.h               |   3 +-
 10 files changed, 165 insertions(+), 217 deletions(-)

-- 
2.21.0 (Apple Git-122.2)


             reply	other threads:[~2019-12-18  5:18 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-18  5:18 damenly.su [this message]
2019-12-18  5:18 ` [PATCH V2 01/10] btrfs-progs: handle error if btrfs_write_one_block_group() failed damenly.su
2019-12-18  5:18 ` [PATCH V2 02/10] btrfs-progs: block_group: add rb tree related memebers damenly.su
2019-12-18  5:18 ` [PATCH V2 03/10] btrfs-progs: port block group cache tree insertion and lookup functions damenly.su
2019-12-18  5:18 ` [PATCH V2 04/10] btrfs-progs: reform the function block_group_cache_tree_search() damenly.su
2019-12-18  9:51   ` Qu Wenruo
2019-12-18  5:18 ` [PATCH V2 05/10] btrfs-progs: adjust ported block group lookup functions in kernel version damenly.su
2019-12-18  9:52   ` Qu Wenruo
2019-12-18 11:01     ` Su Yue
2019-12-18  5:18 ` [PATCH V2 06/10] btrfs-progs: abstract function btrfs_add_block_group_cache() damenly.su
2019-12-18  5:18 ` [PATCH V2 07/10] block-progs: block_group: add dirty_bgs list related memebers damenly.su
2019-12-18  5:18 ` [PATCH V2 08/10] btrfs-progs: pass @trans to functions touch dirty block groups damenly.su
2019-12-18  5:18 ` [PATCH V2 09/10] btrfs-progs: reform block groups caches structure damenly.su
2019-12-18  5:18 ` [PATCH V2 10/10] btrfs-progs: cleanups after block group cache reform damenly.su
2020-01-22 17:52 ` [PATCH V2 00/10] unify origanization structure of block group cache 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=20191218051849.2587-1-Damenly_Su@gmx.com \
    --to=damenly.su@gmail.com \
    --cc=Damenly_Su@gmx.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.