kern/175323: Fail to use ZVOL as a gmirror component
Alexander Motin
mav at FreeBSD.org
Tue Jan 22 17:48:10 UTC 2013
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
More information about the freebsd-geom
mailing list