| From: |
| fdmanana-AT-kernel.org |
| To: |
| linux-btrfs-AT-vger.kernel.org |
| Subject: |
| [PATCH v2 00/15] btrfs: some updates to delayed items and inode logging |
| Date: |
| Mon, 22 Aug 2022 11:51:29 +0100 |
| Message-ID: |
| <cover.1661165149.git.fdmanana@suse.com> |
| Archive-link: |
| Article |
From: Filipe Manana <fdmanana@suse.com>
This patchset brings some optimizations to inode logging, especially for
logging directories, but also when logging a regular file that happens to
have the name of another file that was previously deleted in the current
transaction (triggered very often by the workloads simulated by dbench).
It brings along some cleanups to delated items and logging in general too.
More details in the changelogs of the patches. Thanks.
V2: Updated patch 10/15, added some comments and removed some code made
obsolete by it.
Updated patch 15/15 to make sure recursion of btrfs_log_inode() is
bounded to happen at most once when we have new subdirectories.
Filipe Manana (15):
btrfs: don't drop dir index range items when logging a directory
btrfs: remove the root argument from log_new_dir_dentries()
btrfs: update stale comment for log_new_dir_dentries()
btrfs: free list element sooner at log_new_dir_dentries()
btrfs: avoid memory allocation at log_new_dir_dentries() for common case
btrfs: remove root argument from btrfs_delayed_item_reserve_metadata()
btrfs: store index number instead of key in struct btrfs_delayed_item
btrfs: remove unused logic when looking up delayed items
btrfs: shrink the size of struct btrfs_delayed_item
btrfs: search for last logged dir index if it's not cached in the inode
btrfs: move need_log_inode() to above log_conflicting_inodes()
btrfs: move log_new_dir_dentries() above btrfs_log_inode()
btrfs: log conflicting inodes without holding log mutex of the initial inode
btrfs: skip logging parent dir when conflicting inode is not a dir
btrfs: use delayed items when logging a directory
fs/btrfs/delayed-inode.c | 292 +++++---
fs/btrfs/delayed-inode.h | 34 +-
fs/btrfs/file.c | 1 +
fs/btrfs/tree-log.c | 1418 ++++++++++++++++++++++++++------------
fs/btrfs/tree-log.h | 8 +
5 files changed, 1197 insertions(+), 556 deletions(-)
--
2.35.1