All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/26] btrfs: avoid repeated path computations and allocations for send
@ 2025-02-19 11:43 fdmanana
  2025-02-19 11:43 ` [PATCH 01/26] btrfs: send: remove duplicated logic from fs_path_reset() fdmanana
                   ` (26 more replies)
  0 siblings, 27 replies; 59+ messages in thread
From: fdmanana @ 2025-02-19 11:43 UTC (permalink / raw)
  To: linux-btrfs

From: Filipe Manana <fdmanana@suse.com>

This eleminates repeated path allocations and computations for send when
processing the current inode. The bulk of this is done in patches 24/26
and 25/26, while the remainder are cleanups and simplifications, some of
them to simplify the actual work related to avoiding the repeated path
allocations and computations.

A test, and its result, is described in the change log of patch 25/26.

Filipe Manana (26):
  btrfs: send: remove duplicated logic from fs_path_reset()
  btrfs: send: make fs_path_len() inline and constify its argument
  btrfs: send: always use fs_path_len() to determine a path's length
  btrfs: send: simplify return logic from fs_path_prepare_for_add()
  btrfs: send: simplify return logic from fs_path_add()
  btrfs: send: implement fs_path_add_path() using fs_path_add()
  btrfs: send: simplify return logic from fs_path_add_from_extent_buffer()
  btrfs: send: return -ENAMETOOLONG when attempting a path that is too long
  btrfs: send: simplify return logic from __get_cur_name_and_parent()
  btrfs: send: simplify return logic from is_inode_existent()
  btrfs: send: simplify return logic from get_cur_inode_state()
  btrfs: send: factor out common logic when sending xattrs
  btrfs: send: only use booleans variables at process_recorded_refs()
  btrfs: send: add and use helper to rename current inode when processing refs
  btrfs: send: simplify return logic from send_remove_xattr()
  btrfs: send: simplify return logic from record_new_ref_if_needed()
  btrfs: send: simplify return logic from record_deleted_ref_if_needed()
  btrfs: send: simplify return logic from record_new_ref()
  btrfs: send: simplify return logic from record_deleted_ref()
  btrfs: send: simplify return logic from record_changed_ref()
  btrfs: send: remove unnecessary return variable from process_new_xattr()
  btrfs: send: simplify return logic from process_changed_xattr()
  btrfs: send: simplify return logic from send_verity()
  btrfs: send: keep the current inode's path cached
  btrfs: send: avoid path allocation for the current inode when issuing commands
  btrfs: send: simplify return logic from send_set_xattr()

 fs/btrfs/send.c | 485 +++++++++++++++++++++++-------------------------
 1 file changed, 232 insertions(+), 253 deletions(-)

-- 
2.45.2


^ permalink raw reply	[flat|nested] 59+ messages in thread

end of thread, other threads:[~2025-02-20 23:46 UTC | newest]

Thread overview: 59+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-19 11:43 [PATCH 00/26] btrfs: avoid repeated path computations and allocations for send fdmanana
2025-02-19 11:43 ` [PATCH 01/26] btrfs: send: remove duplicated logic from fs_path_reset() fdmanana
2025-02-19 11:43 ` [PATCH 02/26] btrfs: send: make fs_path_len() inline and constify its argument fdmanana
2025-02-19 11:43 ` [PATCH 03/26] btrfs: send: always use fs_path_len() to determine a path's length fdmanana
2025-02-19 11:43 ` [PATCH 04/26] btrfs: send: simplify return logic from fs_path_prepare_for_add() fdmanana
2025-02-19 11:43 ` [PATCH 05/26] btrfs: send: simplify return logic from fs_path_add() fdmanana
2025-02-19 11:43 ` [PATCH 06/26] btrfs: send: implement fs_path_add_path() using fs_path_add() fdmanana
2025-02-19 11:43 ` [PATCH 07/26] btrfs: send: simplify return logic from fs_path_add_from_extent_buffer() fdmanana
2025-02-19 11:43 ` [PATCH 08/26] btrfs: send: return -ENAMETOOLONG when attempting a path that is too long fdmanana
2025-02-19 11:43 ` [PATCH 09/26] btrfs: send: simplify return logic from __get_cur_name_and_parent() fdmanana
2025-02-19 11:43 ` [PATCH 10/26] btrfs: send: simplify return logic from is_inode_existent() fdmanana
2025-02-19 11:43 ` [PATCH 11/26] btrfs: send: simplify return logic from get_cur_inode_state() fdmanana
2025-02-19 11:43 ` [PATCH 12/26] btrfs: send: factor out common logic when sending xattrs fdmanana
2025-02-19 11:43 ` [PATCH 13/26] btrfs: send: only use booleans variables at process_recorded_refs() fdmanana
2025-02-19 11:43 ` [PATCH 14/26] btrfs: send: add and use helper to rename current inode when processing refs fdmanana
2025-02-19 11:43 ` [PATCH 15/26] btrfs: send: simplify return logic from send_remove_xattr() fdmanana
2025-02-19 11:43 ` [PATCH 16/26] btrfs: send: simplify return logic from record_new_ref_if_needed() fdmanana
2025-02-19 11:43 ` [PATCH 17/26] btrfs: send: simplify return logic from record_deleted_ref_if_needed() fdmanana
2025-02-19 11:43 ` [PATCH 18/26] btrfs: send: simplify return logic from record_new_ref() fdmanana
2025-02-19 11:43 ` [PATCH 19/26] btrfs: send: simplify return logic from record_deleted_ref() fdmanana
2025-02-19 11:43 ` [PATCH 20/26] btrfs: send: simplify return logic from record_changed_ref() fdmanana
2025-02-19 11:43 ` [PATCH 21/26] btrfs: send: remove unnecessary return variable from process_new_xattr() fdmanana
2025-02-19 11:43 ` [PATCH 22/26] btrfs: send: simplify return logic from process_changed_xattr() fdmanana
2025-02-19 11:43 ` [PATCH 23/26] btrfs: send: simplify return logic from send_verity() fdmanana
2025-02-19 11:43 ` [PATCH 24/26] btrfs: send: keep the current inode's path cached fdmanana
2025-02-19 11:43 ` [PATCH 25/26] btrfs: send: avoid path allocation for the current inode when issuing commands fdmanana
2025-02-19 11:43 ` [PATCH 26/26] btrfs: send: simplify return logic from send_set_xattr() fdmanana
2025-02-20 11:04 ` [PATCH v2 00/30] btrfs: avoid repeated path computations and allocations for send fdmanana
2025-02-20 11:04   ` [PATCH v2 01/30] btrfs: send: remove duplicated logic from fs_path_reset() fdmanana
2025-02-20 11:04   ` [PATCH v2 02/30] btrfs: send: make fs_path_len() inline and constify its argument fdmanana
2025-02-20 11:04   ` [PATCH v2 03/30] btrfs: send: always use fs_path_len() to determine a path's length fdmanana
2025-02-20 11:04   ` [PATCH v2 04/30] btrfs: send: simplify return logic from fs_path_prepare_for_add() fdmanana
2025-02-20 11:04   ` [PATCH v2 05/30] btrfs: send: simplify return logic from fs_path_add() fdmanana
2025-02-20 11:04   ` [PATCH v2 06/30] btrfs: send: implement fs_path_add_path() using fs_path_add() fdmanana
2025-02-20 11:04   ` [PATCH v2 07/30] btrfs: send: simplify return logic from fs_path_add_from_extent_buffer() fdmanana
2025-02-20 11:04   ` [PATCH v2 08/30] btrfs: send: return -ENAMETOOLONG when attempting a path that is too long fdmanana
2025-02-20 11:04   ` [PATCH v2 09/30] btrfs: send: simplify return logic from __get_cur_name_and_parent() fdmanana
2025-02-20 11:04   ` [PATCH v2 10/30] btrfs: send: simplify return logic from is_inode_existent() fdmanana
2025-02-20 11:04   ` [PATCH v2 11/30] btrfs: send: simplify return logic from get_cur_inode_state() fdmanana
2025-02-20 11:04   ` [PATCH v2 12/30] btrfs: send: factor out common logic when sending xattrs fdmanana
2025-02-20 11:04   ` [PATCH v2 13/30] btrfs: send: only use booleans variables at process_recorded_refs() fdmanana
2025-02-20 11:04   ` [PATCH v2 14/30] btrfs: send: add and use helper to rename current inode when processing refs fdmanana
2025-02-20 11:04   ` [PATCH v2 15/30] btrfs: send: simplify return logic from send_remove_xattr() fdmanana
2025-02-20 11:04   ` [PATCH v2 16/30] btrfs: send: simplify return logic from record_new_ref_if_needed() fdmanana
2025-02-20 11:04   ` [PATCH v2 17/30] btrfs: send: simplify return logic from record_deleted_ref_if_needed() fdmanana
2025-02-20 11:04   ` [PATCH v2 18/30] btrfs: send: simplify return logic from record_new_ref() fdmanana
2025-02-20 11:04   ` [PATCH v2 19/30] btrfs: send: simplify return logic from record_deleted_ref() fdmanana
2025-02-20 11:04   ` [PATCH v2 20/30] btrfs: send: simplify return logic from record_changed_ref() fdmanana
2025-02-20 11:04   ` [PATCH v2 21/30] btrfs: send: remove unnecessary return variable from process_new_xattr() fdmanana
2025-02-20 11:04   ` [PATCH v2 22/30] btrfs: send: simplify return logic from process_changed_xattr() fdmanana
2025-02-20 11:04   ` [PATCH v2 23/30] btrfs: send: simplify return logic from send_verity() fdmanana
2025-02-20 11:04   ` [PATCH v2 24/30] btrfs: send: simplify return logic from send_rename() fdmanana
2025-02-20 11:04   ` [PATCH v2 25/30] btrfs: send: simplify return logic from send_link() fdmanana
2025-02-20 11:04   ` [PATCH v2 26/30] btrfs: send: simplify return logic from send_unlink() fdmanana
2025-02-20 11:04   ` [PATCH v2 27/30] btrfs: send: simplify return logic from send_rmdir() fdmanana
2025-02-20 11:04   ` [PATCH v2 28/30] btrfs: send: keep the current inode's path cached fdmanana
2025-02-20 11:04   ` [PATCH v2 29/30] btrfs: send: avoid path allocation for the current inode when issuing commands fdmanana
2025-02-20 11:04   ` [PATCH v2 30/30] btrfs: send: simplify return logic from send_set_xattr() fdmanana
2025-02-20 23:46   ` [PATCH v2 00/30] btrfs: avoid repeated path computations and allocations for send David Sterba

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.