2021-01-19 18:45:01

by Josef Bacik

[permalink] [raw]
Subject: Re: [RFC PATCH 00/37] block: introduce bio_init_fields()

On 1/19/21 12:05 AM, Chaitanya Kulkarni wrote:
> Hi,
>
> This is a *compile only RFC* which adds a generic helper to initialize
> the various fields of the bio that is repeated all the places in
> file-systems, block layer, and drivers.
>
> The new helper allows callers to initialize various members such as
> bdev, sector, private, end io callback, io priority, and write hints.
>
> The objective of this RFC is to only start a discussion, this it not
> completely tested at all.

It would help to know what you're trying to accomplish here. I'd echo Mike's
comments about how it makes it annoying to update things in the future. In
addition, there's so many fields that I'm not going to remember what each one is
without having to look it up, which makes it annoying to use and to review. If
it's simply to make sure fields are initialized then you could add debug sanity
checks to submit_bio(). If it's to clean up duplication, well I'd argue that
the duplication is much clearer than positional arguments in a giant function
call. If you are wanting to change a particular part of the bio to be
initialized properly, like Dennis's work to make sure the bi_blkg was
initialized at bi_bdev set time, then a more targeted patch series with a
specific intent will be more useful and more successful. Thanks,

Josef