Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 4 Apr 2023 13:44:55 -0700
From:      Rick Macklem <rick.macklem@gmail.com>
To:        Cy Schubert <Cy.Schubert@cschubert.com>
Cc:        "Pokala, Ravi" <rpokala@panasas.com>, Martin Matuska <mm@freebsd.org>,  Mateusz Guzik <mjguzik@gmail.com>,  "src-committers@freebsd.org" <src-committers@freebsd.org>,  "dev-commits-src-all@freebsd.org" <dev-commits-src-all@freebsd.org>,  "dev-commits-src-main@freebsd.org" <dev-commits-src-main@freebsd.org>
Subject:   Re: 8ee579abe09e - main - zfs: fall back if block_cloning feature is disabled
Message-ID:  <CAM5tNy7Oh=ftiM6BToo0LRitF-w3EsX-WznjMqZptR1gWs9jvw@mail.gmail.com>
In-Reply-To: <20230404123054.6cf5fb6b@slippy>
References:  <202304041145.334Bjx6l035872@gitrepo.freebsd.org> <20230404141717.B976D31C@slippy.cwsent.com> <CAGudoHEvGDUQkYe8LwUXgTZZa%2B6DAFXVtspCX-Mn2egDO2oc_w@mail.gmail.com> <CAM5tNy6sPx4xE%2BcAeeC_RQG_tba_K6Yh-Cni0%2B-WxJ5SXCuO9A@mail.gmail.com> <98c71e6f-5b48-79f3-e7b0-95d674949624@FreeBSD.org> <20230404091844.639cb1c1@slippy> <5B7F71CC-5BE6-4938-A29E-E10B01A4E4ED@panasas.com> <20230404123054.6cf5fb6b@slippy>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Apr 4, 2023 at 12:31=E2=80=AFPM Cy Schubert <Cy.Schubert@cschubert.=
com> wrote:
>
> CAUTION: This email originated from outside of the University of Guelph. =
Do not click links or open attachments unless you recognize the sender and =
know the content is safe. If in doubt, forward suspicious emails to IThelp@=
uoguelph.ca
>
>
> On Tue, 4 Apr 2023 17:54:28 +0000
> "Pokala, Ravi" <rpokala@panasas.com> wrote:
>
> > Cy,
> >
> > The patch adds 'bool done_outvp', unconditionally sets it to 'true', an=
d then later has a check for 'if (!done_outvp)'. Since there is no interven=
ing place where 'done_outvp' could be set to 'false', that check will never=
 succeed and that branch is unreachable.
>
> It's set to false at line 6454, in the loop locking vnodes.
>
> >
> > Or am I mis-reading something?
>
> Maybe Rick can explain but all we're doing is ensuring that the first
> part of the loop is executed only first time through. We could invert it
> and save setting it to false every loop.
Yep. All I did was copy the first lines in the loop up to before the loop
so that it would be done once to lock outvp before the check on it.
The bool just avoids doing those lines for the first loop iteration.

And, yes, you could reorganize the loop to avoid using the bool
to skip the lines on the first iteration, but I think the code would be
more confusing with the loop reorganized.
However, if someone wants to re-write it, I have no problem with that.

rick

>
> >
> > Thanks,
> >
> > Ravi (rpokala@)
> >
>
> --
> Cheers,
> Cy Schubert <Cy.Schubert@cschubert.com>
> FreeBSD UNIX:  <cy@FreeBSD.org>   Web:  https://FreeBSD.org
> NTP:           <cy@nwtime.org>    Web:  https://nwtime.org
>
>                         e^(i*pi)+1=3D0
>
>
> > =EF=BB=BF-----Original Message-----
> > From: <owner-src-committers@freebsd.org <mailto:owner-src-committers@fr=
eebsd.org>> on behalf of Cy Schubert <Cy.Schubert@cschubert.com <mailto:Cy.=
Schubert@cschubert.com>>
> > Organization: KOMQUATS
> > Date: Tuesday, April 4, 2023 at 09:18
> > To: Martin Matuska <mm@FreeBSD.org <mailto:mm@FreeBSD.org>>
> > Cc: Rick Macklem <rick.macklem@gmail.com <mailto:rick.macklem@gmail.com=
>>, Mateusz Guzik <mjguzik@gmail.com <mailto:mjguzik@gmail.com>>, <src-comm=
itters@freebsd.org <mailto:src-committers@freebsd.org>>, <dev-commits-src-a=
ll@freebsd.org <mailto:dev-commits-src-all@freebsd.org>>, <dev-commits-src-=
main@freebsd.org <mailto:dev-commits-src-main@freebsd.org>>
> > Subject: Re: git: 8ee579abe09e - main - zfs: fall back if block_cloning=
 feature is disabled
> >
> >
> > On Tue, 4 Apr 2023 17:30:25 +0200
> > Martin Matuska <mm@FreeBSD.org <mailto:mm@FreeBSD.org>> wrote:
> >
> >
> > > So I am now a little bit confused - what is the consensus? :-)
> >
> >
> > My exmh email client made a mess of that. Let's try this again.
> >
> >
> > Rick has posted a patch. Your patch should also be incorporated to work
> > around other EXDEV errors, but a few lines earlier so it is protected b=
y
> > the lock.
> >
> >
> > There were a couple of typos in Rick's patch (a missing keystroke;
> > s/ojset/objset/).
> >
> >
> > The patch (Rick's null pointer dereference fix, Rick's copy file range
> > patch plus your copy file range patch) builds fine on amd64 and i386.
> > Installing and testing it now.
> >
> >
> > A combination of all three patches is attached. It's compile tested but=
 is
> > currently being installed and will be tested when install is completed.
> >
> >



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAM5tNy7Oh=ftiM6BToo0LRitF-w3EsX-WznjMqZptR1gWs9jvw>