mbox series

[00/15] btrfs: some updates to delayed items and inode logging

Message ID cover.1660735024.git.fdmanana@suse.com (mailing list archive)
Headers show
Series btrfs: some updates to delayed items and inode logging | expand

Message

Filipe Manana Aug. 17, 2022, 11:22 a.m. UTC
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.

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 |  329 +++++-----
 fs/btrfs/delayed-inode.h |   36 +-
 fs/btrfs/file.c          |    1 +
 fs/btrfs/tree-log.c      | 1337 ++++++++++++++++++++++++++------------
 fs/btrfs/tree-log.h      |    6 +
 5 files changed, 1146 insertions(+), 563 deletions(-)