kern/175323: Fail to use ZVOL as a gmirror component

Pawel Jakub Dawidek pjd at FreeBSD.org
Tue Jan 22 18:13:02 UTC 2013


On Tue, Jan 22, 2013 at 07:48:05PM +0200, Alexander Motin wrote:
> On 22.01.2013 18:29, Andriy Gapon wrote:
> > on 21/01/2013 14:39 Алексей Волков said the following:
> >> Eventually this patch works for me just fine.
> >>
> >> --- sys/geom/mirror/g_mirror.c    (revision 245741)
> >> +++ sys/geom/mirror/g_mirror.c    (working copy)
> >> @@ -456,7 +456,7 @@
> >>      disk->d_flags = md->md_dflags;
> >>      error = g_getattr("GEOM::candelete", disk->d_consumer, &i);
> >>      if (error != 0)
> >> -        goto fail;
> >> +        i=0;
> >>      if (i)
> >>          disk->d_flags |= G_MIRROR_DISK_FLAG_CANDELETE;
> >>      if (md->md_provider[0] != '\0')
> >>
> > 
> > So any comments from the GEOM / gmirror guys?
> 
> That looks fine to me. I would just do it as:
> 
> --- g_mirror.c  (revision 245794)
> +++ g_mirror.c  (working copy)
> @@ -457,9 +457,7 @@ g_mirror_init_disk(struct g_mirror_softc *sc, stru
>         disk->d_priority = md->md_priority;
>         disk->d_flags = md->md_dflags;
>         error = g_getattr("GEOM::candelete", disk->d_consumer, &i);
> -       if (error != 0)
> -               goto fail;
> -       if (i)
> +       if (error == 0 && i != 0)
>                 disk->d_flags |= G_MIRROR_DISK_FLAG_CANDELETE;
>         if (md->md_provider[0] != '\0')
>                 disk->d_flags |= G_MIRROR_DISK_FLAG_HARDCODED;

Looks good to me.

-- 
Pawel Jakub Dawidek                       http://www.wheelsystems.com
FreeBSD committer                         http://www.FreeBSD.org
Am I Evil? Yes, I Am!                     http://tupytaj.pl
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-geom/attachments/20130122/e99646db/attachment.sig>


More information about the freebsd-geom mailing list