Re: [RFC 06/12] bio: don't check target->bi_status on error

From: Andreas Gruenbacher
Date: Tue Dec 16 2025 - 06:24:23 EST


On Tue, Dec 16, 2025 at 11:44 AM Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:
> On Tue, Dec 16, 2025 at 09:41:49AM +0100, Andreas Gruenbacher wrote:
> > On Tue, Dec 16, 2025 at 8:59 AM Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:
> > > On Mon, Dec 08, 2025 at 12:10:13PM +0000, Andreas Gruenbacher wrote:
> > > > In a few places, target->bi_status is set to source->bi_status only if
> > > > source->bi_status is not 0 and target->bi_status is (still) 0. Here,
> > > > checking the value of target->bi_status before setting it is an
> > > > unnecessary micro optimization because we are already on an error path.
> > >
> > > What is source and target here? I have a hard time trying to follow
> > > what this is trying to do.
> >
> > Not sure, what would you suggest instead?
>
> I still don't understand what you're saying here at all, or what this is
> trying to fix or optimize.

When we have this construct in the code and we know that status is not 0:

if (!bio->bi_status)
bio->bi_status = status;

we can just do this instead:

bio>bi_status = status;

Andreas