From owner-p4-projects@FreeBSD.ORG Mon Aug 15 04:07:30 2005 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 9EBA116A421; Mon, 15 Aug 2005 04:07:29 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3FD5916A41F for ; Mon, 15 Aug 2005 04:07:29 +0000 (GMT) (envelope-from soc-cjones@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 579C843D5D for ; Mon, 15 Aug 2005 04:07:27 +0000 (GMT) (envelope-from soc-cjones@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7F47Rw0009996 for ; Mon, 15 Aug 2005 04:07:27 GMT (envelope-from soc-cjones@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7F47RW4009993 for perforce@freebsd.org; Mon, 15 Aug 2005 04:07:27 GMT (envelope-from soc-cjones@freebsd.org) Date: Mon, 15 Aug 2005 04:07:27 GMT Message-Id: <200508150407.j7F47RW4009993@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-cjones@freebsd.org using -f From: soc-cjones To: Perforce Change Reviews Cc: Subject: PERFORCE change 82005 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: Mon, 15 Aug 2005 04:07:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=82005 Change 82005 by soc-cjones@soc-cjones_ishtar on 2005/08/15 04:07:03 Ha! It works! Now to fix up that pesky little can't-access-plex problem.... Affected files ... .. //depot/projects/soc2005/gvinum/src/sys/geom/vinum/geom_vinum_move.c#7 edit Differences ... ==== //depot/projects/soc2005/gvinum/src/sys/geom/vinum/geom_vinum_move.c#7 (text+ko) ==== @@ -198,44 +198,48 @@ since we don't really want to deal with tokenizing stuff. Oh well. */ s2 = g_malloc(sizeof(*s2), M_WAITOK | M_ZERO); - printf("A\n"); snprintf(s2->name, GV_MAXSDNAME, "temp.s0"); /* TODO Come up with temp name. */ - printf("B (s2->name = %s)\n", s2->name); + printf("gv_move_sd: B (s2->name = %s)\n", s2->name); s2->size = s->size; - printf("C\n"); strncpy(s2->drive, d->name, GV_MAXSDNAME); - s2->drive_sc = d; + /* XXX this breaks allocating the sd to a drive. s2->drive_sc = d; */ s2->drive_offset = -1; s2->plex_offset = -1; - printf("D\n"); s2->plex_sc = (struct gv_plex *) NULL; s2->state = GV_SD_DOWN; s2->vinumconf = sc; - printf("E\n"); + printf("gv_move_sd: E\n"); err = gv_sd_to_drive(sc, d, s2, errstr, sizeof(errstr)); if (err) { - printf("F errstr = %s\n", errstr); + printf("gv_move_sd: F errstr = %s\n", errstr); gctl_error(req, errstr); g_free(s2); return err; } - printf("G\n"); + printf("gv_move_sd: G\n"); s2->flags |= GV_SD_NEWBORN; - printf("H\n"); LIST_INSERT_HEAD(&sc->subdisks, s2, sd); - printf("I\n"); + printf("gv_move_sd: I\n"); s2->state = GV_SD_STALE; - printf("J\n"); + printf("gv_move_sd: J\n"); gv_save_config_all(sc); - printf("K\n"); + printf("gv_move_sd: K\n"); /* TODO -- move data from old sd to new sd. */ /* TODO -- rename new sd, update plexes, and delete old sd. */ - strncpy(s2->name, s->name, GV_MAXSDNAME); + strncpy(s2->name, s->name, GV_MAXSDNAME); + strncpy(s2->plex, s->plex, GV_MAXPLEXNAME); + printf("gv_move_sd: L\n"); + s2->plex_offset = s->plex_offset; + printf("gv_move_sd: M\n"); /* DIES HERE */ + LIST_INSERT_BEFORE(s, s2, in_plex); + printf("gv_move_sd: N\n"); gv_rm_sd(sc, req, s, flags); + printf("gv_move_sd: O\n"); gv_save_config_all(sc); + printf("gv_move_sd: done gv_move_sd\n"); return (0); }