Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 Aug 2005 02:22:42 GMT
From:      soc-cjones <soc-cjones@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 81585 for review
Message-ID:  <200508070222.j772MgMK045377@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=81585

Change 81585 by soc-cjones@soc-cjones_ishtar on 2005/08/07 02:22:16

	It compiles.  Whee.

Affected files ...

.. //depot/projects/soc2005/gvinum/src/sys/geom/vinum/geom_vinum_rename.c#2 edit

Differences ...

==== //depot/projects/soc2005/gvinum/src/sys/geom/vinum/geom_vinum_rename.c#2 (text+ko) ====

@@ -45,10 +45,10 @@
 static int	gv_rename_sd(struct gv_softc *, struct gctl_req *,
 				struct gv_sd *, char *, int);
 static int	gv_rename_vol(struct gv_softc *, struct gctl_req *,
-				struct gv_vol *, char *, int);
+				struct gv_volume *, char *, int);
 
 void
-gv_rename(struct g_geom *, struct gctl_req *)
+gv_rename(struct g_geom *gp, struct gctl_req *req)
 {
 	struct gv_softc *sc;
 	struct gv_volume *v;
@@ -66,14 +66,20 @@
 	argc = gctl_get_paraml(req, "argc", sizeof(*argc));
 	flags = gctl_get_paraml(req, "flags", sizeof(*flags));
 
-	newname = gctl_get_paraml(req, "newname", sizeof(*newname));
-	if (NULL == newname || 0 == *newname) {
+	newname = gctl_get_param(req, "newname", NULL);
+	if (NULL == newname) {
 		gctl_error(req, "no new name given");
 		return;
 	}
+	type = gv_object_type(sc, newname);
+	printf("gv_object_type(sc, \"%s\") = %d\n", newname, type);
+	if (-1 != type) {
+		gctl_error(req, "new name is already in use");
+		return;
+	}
 
-	object = gctl_get_paraml(req, "object", sizeof(*object));
-	if (NULL == object || 0 == *object) {
+	object = gctl_get_param(req, "object", NULL);
+	if (NULL == object) {
 		gctl_error(req, "no object given");
 		return;
 	}
@@ -96,6 +102,8 @@
 			gctl_error(req, "unknown plex '%s'", object);
 			return;
 		}
+		gctl_error(req, "calling gv_rename_plex(,, %s, %s,)", p, newname);
+		return;
 		err = gv_rename_plex(sc, req, p, newname, *flags);
 		if (err)
 			return;
@@ -106,6 +114,8 @@
 			gctl_error(req, "unknown subdisk '%s'", object);
 			return;
 		}
+		gctl_error(req, "calling gv_rename_sd(,, %s, %s,)", s, newname);
+		return;
 		err = gv_rename_sd(sc, req, s, newname, *flags);
 		if (err)
 			return;
@@ -116,6 +126,8 @@
 			gctl_error(req, "unknown drive '%s'", object);
 			return;
 		}
+		gctl_error(req, "calling gv_rename_drive(,, %s, %s,)", d, newname);
+		return;
 		err = gv_rename_drive(sc, req, d, newname, *flags);
 		if (err)
 			return;
@@ -136,6 +148,8 @@
 	g_topology_assert();
 	KASSERT(d != NULL, ("gv_rename_drive: NULL d"));
 
+	return (0);
+
 }
 
 static int	
@@ -146,6 +160,7 @@
 	g_topology_assert();
 	KASSERT(d != NULL, ("gv_rename_plex: NULL p"));
 
+	return (0);
 }
 
 static int 
@@ -156,14 +171,45 @@
 	g_topology_assert();
 	KASSERT(d != NULL, ("gv_rename_sd: NULL s"));
 
+	return (0);
 }
 
 static int 
-gv_rename_vol(struct gv_softc *sc, struct gctl_req *req, struct gv_vol *v, char *newname, int flags)
+gv_rename_vol(struct gv_softc *sc, struct gctl_req *req, struct gv_volume *v, char *newname, int flags)
 {
 	int err;
+	struct gv_plex *p;
+	struct gv_sd *s;
 
 	g_topology_assert();
 	KASSERT(d != NULL, ("gv_rename_vol: NULL v"));
 
+	printf("gv_rename_vol:\n");
+	printf("\tsc = %p\n", sc);
+	printf("\treq = %p\n", req);
+	printf("\tv = %p\n", v);
+	printf("\t\tv->name = %s\n", v->name);
+	printf("\t\tv->size = %d\n", (int) v->size);
+	printf("\t\tv->plexcount = %d\n", v->plexcount);
+	printf("\tnewname = \"%s\"\n", newname);
+	printf("\tflags = %x\n", flags);
+
+	printf("iterating across plexes list...\n");
+	LIST_FOREACH(p, &v->plexes, plex) {
+	  if (strcmp(p->volume, v->name)) {
+		continue; /* Not a plex we're looking for. */
+	  }
+	  printf("\tp->name = %s\n", p->name);
+	  printf("\tp->size = %d\n", (int) p->size);
+	  printf("\tp->volume = %s\n", p->volume);
+/*	  LIST_FOREACH(s, &p->subdisks, sd) {
+	    printf("\t\ts->name = %s\n", s->name);
+	    printf("\t\ts->size = %d\n", (int) s->size);
+	    printf("\t\ts->drive = %s\n", s->drive);
+	    printf("\t\ts->plex = %s\n", s->plex);
+	  } */
+	}
+
+	return (0);
+
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200508070222.j772MgMK045377>