From owner-p4-projects@FreeBSD.ORG Wed Jun 27 17:35:40 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9AF1016A46E; Wed, 27 Jun 2007 17:35:39 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6F74D16A41F for ; Wed, 27 Jun 2007 17:35:39 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 621DC13C46A for ; Wed, 27 Jun 2007 17:35:39 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l5RHZdBh076390 for ; Wed, 27 Jun 2007 17:35:39 GMT (envelope-from lulf@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l5RHZdZl076387 for perforce@freebsd.org; Wed, 27 Jun 2007 17:35:39 GMT (envelope-from lulf@FreeBSD.org) Date: Wed, 27 Jun 2007 17:35:39 GMT Message-Id: <200706271735.l5RHZdZl076387@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to lulf@FreeBSD.org using -f From: Ulf Lilleengen To: Perforce Change Reviews Cc: Subject: PERFORCE change 122416 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jun 2007 17:35:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=122416 Change 122416 by lulf@lulf_carrot on 2007/06/27 17:35:18 - Fix bug in renaming code where we missed an 's' - Enable support for renaming in 'attach' command. - Enable support for setting subdisk offset when attaching a subdisk to a plex. Affected files ... .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum.c#21 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_subr.c#12 edit Differences ... ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum.c#21 (text+ko) ==== @@ -216,9 +216,17 @@ gctl_error(req, "no parent given"); return; } - offset = gctl_get_paraml(req, "offset", sizeof(*offset)); + if (offset == NULL) { + gctl_error(req, "no offset given"); + return; + } rename = gctl_get_paraml(req, "rename", sizeof(*rename)); + if (rename == NULL) { + gctl_error(req, "no rename flag given"); + return; + } + type_child = gv_object_type(sc, child); type_parent = gv_object_type(sc, parent); @@ -230,8 +238,7 @@ } v = gv_find_vol(sc, parent); p = gv_find_plex(sc, child); - /* XXX: Rename not supported yet. */ - gv_post_event(sc, GV_EVENT_ATTACH_PLEX, p, v, 0, 0); + gv_post_event(sc, GV_EVENT_ATTACH_PLEX, p, v, *offset, *rename); break; case GV_TYPE_SD: if (type_parent != GV_TYPE_PLEX) { @@ -241,7 +248,7 @@ p = gv_find_plex(sc, parent); s = gv_find_sd(sc, child); /* XXX: Rename not supported yet. */ - gv_post_event(sc, GV_EVENT_ATTACH_SD, s, p, 0, 0); + gv_post_event(sc, GV_EVENT_ATTACH_SD, s, p, *offset, *rename); break; default: gctl_error(req, "invalid child type"); @@ -514,7 +521,8 @@ struct gv_sd *s; struct gv_drive *d; struct bio *bp; - int newstate, flags, err; + int newstate, flags, err, rename; + off_t offset; sc = arg; KASSERT(sc != NULL, ("NULL sc")); @@ -699,7 +707,8 @@ printf("VINUM: event 'attach'\n"); p = ev->arg1; v = ev->arg2; - err = gv_attach_plex(p, v, 0); + rename = ev->arg4; + err = gv_attach_plex(p, v, rename); if (err) printf("VINUM: error attaching %s to " "%s: error code %d\n", p->name, @@ -710,7 +719,9 @@ printf("VINUM: event 'attach'\n"); s = ev->arg1; p = ev->arg2; - err = gv_attach_sd(s, p, -1, 0); + offset = ev->arg3; + rename = ev->arg4; + err = gv_attach_sd(s, p, offset, rename); if (err) printf("VINUM: error attaching %s to " "%s: error code %d\n", s->name, ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_subr.c#12 (text+ko) ==== @@ -1105,7 +1105,7 @@ gv_update_plex_config(p); if (rename) { - snprintf(s->name, GV_MAXSDNAME, "%s.%d", s->plex, + snprintf(s->name, GV_MAXSDNAME, "%s.s%d", s->plex, p->sdcount - 1); } gv_save_config(p->vinumconf);