Re: [PATCH v2 0/3] btrfs: btrfs_bio and btrfs_io_bio rename

David Sterba
2021-09-14T16:26:04Z

On Tue, Sep 14, 2021 at 09:25:40AM +0800, Qu Wenruo wrote:
> The branch can be fetched from github, and is the preferred way to grab
> the code, as this patchset changed quite a lot of code.
> https://github.com/adam900710/linux/tree/chunk_refactor
>
> There are two structure, btrfs_io_bio and btrfs_bio, which have very
> similar names but completely different meanings.
>
> Btrfs_io_bio mostly works at logical bytenr layer (its
> bio->bi_iter.bi_sector points to btrfs logical bytenr), and just
> contains extra info like csum and mirror_num.
>
> And btrfs_io_bio is in fact the most utilized bio, as all data/metadata
> IO is using btrfs_io_bio.
>
> While btrfs_bio is completely a helper structure for stripe IO
> submission (RAID56 doesn't utilize it for IO submission).
>
> Such naming is completely anti-human.
>
> So this patchset will do the following renaming:
>
> - btrfs_bio -> btrfs_io_context
> Since it's not really used by all bios (only mirrored profiles utilize
> it), and it contains extra info for RAID56, it's not proper to name it
> with _bio suffix.
>
> Later we can integrate btrfs_io_context pointer into the new
> btrfs_bio.
>
> - btrfs_io_bio -> btrfs_bio
> I originally plan to rename it to btrfs_logical_bio, but it's a little
> too long for a lot of functions.

This sounds all good. The only dangerous thing is that btrfs_bio now
means something else, so that can become problem with backports or
requiring to do a mental switch when reading before/after the version it
appears.