Date: Mon, 15 Aug 2005 04:07:27 GMT From: soc-cjones <soc-cjones@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 82005 for review Message-ID: <200508150407.j7F47RW4009993@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200508150407.j7F47RW4009993>