From owner-freebsd-bugs@FreeBSD.ORG Mon Jan 21 12:00:02 2013 Return-Path: Delivered-To: freebsd-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 111094E8 for ; Mon, 21 Jan 2013 12:00:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 035FBB24 for ; Mon, 21 Jan 2013 12:00:02 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.6/8.14.6) with ESMTP id r0LC017k066101 for ; Mon, 21 Jan 2013 12:00:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.6/8.14.6/Submit) id r0LC01nr066100; Mon, 21 Jan 2013 12:00:01 GMT (envelope-from gnats) Date: Mon, 21 Jan 2013 12:00:01 GMT Message-Id: <201301211200.r0LC01nr066100@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: =?UTF-8?B?0JDQu9C10LrRgdC10Lkg0JLQvtC70LrQvtCy?= Subject: Re: kern/175323: Fail to use ZVOL as a gmirror component X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: =?UTF-8?B?0JDQu9C10LrRgdC10Lkg0JLQvtC70LrQvtCy?= List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jan 2013 12:00:02 -0000 The following reply was made to PR kern/175323; it has been noted by GNATS. From: =?UTF-8?B?0JDQu9C10LrRgdC10Lkg0JLQvtC70LrQvtCy?= To: bug-followup@FreeBSD.org, Andriy Gapon Cc: Subject: Re: kern/175323: Fail to use ZVOL as a gmirror component Date: Mon, 21 Jan 2013 15:47:32 +0400 Andriy, many thanks for the suggestion. I am trying to rebuild and test the kernel with the following patch: --- 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') It seems to correct if assume G_MIRROR_DISK_FLAG_CANDELETE is always off unless successfully reported by GEOM::candelete attribute. -- Best regards 21.01.2013 13:47, Andriy Gapon пишет: > This >> GEOM_MIRROR: Cannot add disk zvol/tank0/vol0 to mirror0 (error=45). > seems to be triggered by the following code in sys/geom/mirror/g_mirror.c: > > error = g_getattr("GEOM::candelete", disk->d_consumer, &i); > if (error != 0) > goto fail; > > plus the fact that ZFS zvol does the following: > case BIO_GETATTR: > case BIO_DELETE: > default: > g_io_deliver(bp, EOPNOTSUPP); > break; > > Perhaps, the gmirror code should be more flexible with respect to EOPNOTSUPP > from g_getattr? >