From owner-freebsd-current@FreeBSD.ORG Tue Jul 8 13:51:26 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5FC4137B401; Tue, 8 Jul 2003 13:51:26 -0700 (PDT) Received: from phk.freebsd.dk (phk.freebsd.dk [212.242.86.175]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2944043F75; Tue, 8 Jul 2003 13:51:25 -0700 (PDT) (envelope-from phk@phk.freebsd.dk) Received: from critter.freebsd.dk (port757.uc1-esp.isdn-lan.cybercity.dk [212.242.98.245]) by phk.freebsd.dk (8.12.8/8.12.8) with ESMTP id h68KpNV3028666; Tue, 8 Jul 2003 20:51:23 GMT (envelope-from phk@phk.freebsd.dk) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.12.9/8.12.9) with ESMTP id h68KpMvb006667; Tue, 8 Jul 2003 22:51:22 +0200 (CEST) (envelope-from phk@phk.freebsd.dk) To: Sean Kelly From: "Poul-Henning Kamp" In-Reply-To: Your message of "Tue, 08 Jul 2003 15:46:49 CDT." <20030708204649.GA19571@edgemaster.zombie.org> Date: Tue, 08 Jul 2003 22:51:22 +0200 Message-ID: <6666.1057697482@critter.freebsd.dk> cc: "D. Rock" cc: current@FreeBSD.org Subject: Re: GEOM panic X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jul 2003 20:51:26 -0000 In message <20030708204649.GA19571@edgemaster.zombie.org>, Sean Kelly writes: >On Tue, Jul 08, 2003 at 10:35:47PM +0200, Poul-Henning Kamp wrote: >> >> Can you try this patch ? > >... >> diff -u -r1.28 geom_dump.c >> --- geom_dump.c 11 Jun 2003 06:49:15 -0000 1.28 >> +++ geom_dump.c 8 Jul 2003 20:00:45 -0000 >... >> @@ -162,6 +164,8 @@ >> sbuf_printf(sb, "\t \n", cp->provider); >> sbuf_printf(sb, "\t r%dw%de%d\n", >> cp->acr, cp->acw, cp->ace); >> + if (cp->geom->flags & G_GEOM_WITHER) >> + ; >> if (cp->geom->dumpconf != NULL) { >> sbuf_printf(sb, "\t \n"); >... > >Should that be "else if ((cp->geom->dumpconf != NULL)"? I don't know the >code, but I'm basing this question off of what is below in the patch: Yes, an else is missing there. Corrected patch: Index: geom_dump.c =================================================================== RCS file: /home/ncvs/src/sys/geom/geom_dump.c,v retrieving revision 1.28 diff -u -r1.28 geom_dump.c --- geom_dump.c 11 Jun 2003 06:49:15 -0000 1.28 +++ geom_dump.c 8 Jul 2003 20:51:04 -0000 @@ -114,6 +114,8 @@ struct g_provider *pp; struct g_consumer *cp; + if (gp->flags & G_GEOM_WITHER) + return; LIST_FOREACH(pp, &gp->provider, provider) { sbuf_printf(sb, "%d %s %s %ju %u", level, gp->class->name, pp->name, (uintmax_t)pp->mediasize, pp->sectorsize); @@ -162,7 +164,9 @@ sbuf_printf(sb, "\t \n", cp->provider); sbuf_printf(sb, "\t r%dw%de%d\n", cp->acr, cp->acw, cp->ace); - if (cp->geom->dumpconf != NULL) { + if (cp->geom->flags & G_GEOM_WITHER) + ; + else if (cp->geom->dumpconf != NULL) { sbuf_printf(sb, "\t \n"); cp->geom->dumpconf(sb, "\t ", cp->geom, cp, NULL); sbuf_printf(sb, "\t \n"); @@ -182,7 +186,9 @@ sbuf_printf(sb, "\t %jd\n", (intmax_t)pp->mediasize); sbuf_printf(sb, "\t %u\n", pp->sectorsize); - if (pp->geom->dumpconf != NULL) { + if (pp->geom->flags & G_GEOM_WITHER) + ; + else if (pp->geom->dumpconf != NULL) { sbuf_printf(sb, "\t \n"); pp->geom->dumpconf(sb, "\t ", pp->geom, NULL, pp); sbuf_printf(sb, "\t \n"); @@ -201,7 +207,9 @@ sbuf_printf(sb, " \n", gp->class); sbuf_printf(sb, " %s\n", gp->name); sbuf_printf(sb, " %d\n", gp->rank); - if (gp->dumpconf != NULL) { + if (gp->flags & G_GEOM_WITHER) + sbuf_printf(sb, " \n"); + else if (gp->dumpconf != NULL) { sbuf_printf(sb, " \n"); gp->dumpconf(sb, "\t", gp, NULL, NULL); sbuf_printf(sb, " \n"); -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence.