Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Jan 2013 19:48:05 +0200
From:      Alexander Motin <mav@FreeBSD.org>
To:        Andriy Gapon <avg@FreeBSD.org>
Cc:        freebsd-geom@FreeBSD.org
Subject:   Re: kern/175323: Fail to use ZVOL as a gmirror component
Message-ID:  <50FED0D5.6060105@FreeBSD.org>
In-Reply-To: <50FEBE55.1040009@FreeBSD.org>
References:  <50FD0E99.8010305@FreeBSD.org> <CAKNWxEU8PVtnRrN6%2BEsx835OHqSGSbgWV9xCOzVjUXKmZQvaLA@mail.gmail.com> <50FEBE55.1040009@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

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;


-- 
Alexander Motin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?50FED0D5.6060105>