public inbox for linux-btrfs@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox