mbox series

[0/3] btrfs-progs: write_and_map_eb() cleanup

Message ID cover.1683632614.git.wqu@suse.com (mailing list archive)
Headers show
Series btrfs-progs: write_and_map_eb() cleanup | expand

Message

Qu Wenruo May 9, 2023, 11:48 a.m. UTC
During my convert fixes, I found a lot of locations allocating a dummy
extent buffer with a size which is not nodesize.

Then just read data into that dummy eb, and later call
write_and_map_eb() to write it back.

This behavior is a historic workaround, at a time where we only do
proper RAID56 writeback for metadata, but not data.

But now we have all raid56 handling done properly, and has proper
function to read/write any logical bytenr, read_data_from_disk() and
write_data_to_disk().

Thus there is no longer any need to use write_and_map_eb() as a
workaround.

This patchset would completely remove write_and_map_eb(), most call
sites are just abuse, only 3 call sites are valid but can easily be
converted to call write_data_to_disk().

Qu Wenruo (3):
  btrfs-progs: split btrfs_direct_pio() functions into two
  btrfs-progs: constify the buffer pointer for write functions
  btrfs-progs: remove write_and_map_eb()

 btrfs-corrupt-block.c     | 48 ++++++++++++++---------
 common/device-utils.c     | 82 ++++++++++++++++++++++++++-------------
 common/device-utils.h     | 13 ++++---
 convert/main.c            | 19 ++++-----
 convert/source-reiserfs.c | 10 +----
 kernel-shared/disk-io.c   | 23 +----------
 kernel-shared/disk-io.h   |  1 -
 kernel-shared/extent_io.c |  2 +-
 kernel-shared/extent_io.h |  2 +-
 mkfs/rootdir.c            | 41 +++++++-------------
 10 files changed, 118 insertions(+), 123 deletions(-)

Comments

David Sterba May 10, 2023, 4:25 p.m. UTC | #1
On Tue, May 09, 2023 at 07:48:37PM +0800, Qu Wenruo wrote:
> During my convert fixes, I found a lot of locations allocating a dummy
> extent buffer with a size which is not nodesize.
> 
> Then just read data into that dummy eb, and later call
> write_and_map_eb() to write it back.
> 
> This behavior is a historic workaround, at a time where we only do
> proper RAID56 writeback for metadata, but not data.
> 
> But now we have all raid56 handling done properly, and has proper
> function to read/write any logical bytenr, read_data_from_disk() and
> write_data_to_disk().
> 
> Thus there is no longer any need to use write_and_map_eb() as a
> workaround.
> 
> This patchset would completely remove write_and_map_eb(), most call
> sites are just abuse, only 3 call sites are valid but can easily be
> converted to call write_data_to_disk().
> 
> Qu Wenruo (3):
>   btrfs-progs: split btrfs_direct_pio() functions into two
>   btrfs-progs: constify the buffer pointer for write functions
>   btrfs-progs: remove write_and_map_eb()

Added to devel, thanks.