Module Name:    src
Committed By:   christos
Date:           Wed May 29 23:25:39 UTC 2013

Modified Files:
        src/sys/dev: cgd.c

Log Message:
eliminare dk_geom


To generate a diff of this commit:
cvs rdiff -u -r1.79 -r1.80 src/sys/dev/cgd.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/cgd.c
diff -u src/sys/dev/cgd.c:1.79 src/sys/dev/cgd.c:1.80
--- src/sys/dev/cgd.c:1.79	Tue May 28 20:47:48 2013
+++ src/sys/dev/cgd.c	Wed May 29 19:25:39 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: cgd.c,v 1.79 2013/05/29 00:47:48 christos Exp $ */
+/* $NetBSD: cgd.c,v 1.80 2013/05/29 23:25:39 christos Exp $ */
 
 /*-
  * Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cgd.c,v 1.79 2013/05/29 00:47:48 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cgd.c,v 1.80 2013/05/29 23:25:39 christos Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -610,6 +610,7 @@ cgd_ioctl_set(struct cgd_softc *cs, void
 	const char *cp;
 	struct pathbuf *pb;
 	char	 *inbuf;
+	struct dk_softc *dksc = &cs->sc_dksc;
 
 	cp = ci->ci_disk;
 
@@ -687,23 +688,23 @@ cgd_ioctl_set(struct cgd_softc *cs, void
 	}
 	free(inbuf, M_TEMP);
 
-	bufq_alloc(&cs->sc_dksc.sc_bufq, "fcfs", 0);
+	bufq_alloc(&dksc->sc_bufq, "fcfs", 0);
 
 	cs->sc_data = malloc(MAXPHYS, M_DEVBUF, M_WAITOK);
 	cs->sc_data_used = 0;
 
-	cs->sc_dksc.sc_flags |= DKF_INITED;
+	dksc->sc_flags |= DKF_INITED;
 
-	dk_set_geometry(di, &cs->sc_dksc);
+	disk_set_info(dksc->sc_dev, &dksc->sc_dkdev, NULL);
 
 	/* Attach the disk. */
-	disk_attach(&cs->sc_dksc.sc_dkdev);
+	disk_attach(&dksc->sc_dkdev);
 
 	/* Try and read the disklabel. */
-	dk_getdisklabel(di, &cs->sc_dksc, 0 /* XXX ? (cause of PR 41704) */);
+	dk_getdisklabel(di, dksc, 0 /* XXX ? (cause of PR 41704) */);
 
 	/* Discover wedges on this disk. */
-	dkwedge_discover(&cs->sc_dksc.sc_dkdev);
+	dkwedge_discover(&dksc->sc_dkdev);
 
 	return 0;
 
@@ -718,29 +719,27 @@ static int
 cgd_ioctl_clr(struct cgd_softc *cs, struct lwp *l)
 {
 	int	s;
-	struct	dk_softc *dksc;
-
-	dksc = &cs->sc_dksc;
+	struct	dk_softc *dksc = &cs->sc_dksc;
 
 	if ((dksc->sc_flags & DKF_INITED) == 0)
 		return ENXIO;
 
 	/* Delete all of our wedges. */
-	dkwedge_delall(&cs->sc_dksc.sc_dkdev);
+	dkwedge_delall(&dksc->sc_dkdev);
 
 	/* Kill off any queued buffers. */
 	s = splbio();
-	bufq_drain(cs->sc_dksc.sc_bufq);
+	bufq_drain(dksc->sc_bufq);
 	splx(s);
-	bufq_free(cs->sc_dksc.sc_bufq);
+	bufq_free(dksc->sc_bufq);
 
 	(void)vn_close(cs->sc_tvn, FREAD|FWRITE, l->l_cred);
 	cs->sc_cfuncs->cf_destroy(cs->sc_cdata.cf_priv);
 	free(cs->sc_tpath, M_DEVBUF);
 	free(cs->sc_data, M_DEVBUF);
 	cs->sc_data_used = 0;
-	cs->sc_dksc.sc_flags &= ~DKF_INITED;
-	disk_detach(&cs->sc_dksc.sc_dkdev);
+	dksc->sc_flags &= ~DKF_INITED;
+	disk_detach(&dksc->sc_dkdev);
 
 	return 0;
 }
@@ -751,6 +750,7 @@ cgd_ioctl_get(dev_t dev, void *data, str
 	struct cgd_softc *cs;
 	struct cgd_user *cgu;
 	int unit;
+	struct	dk_softc *dksc = &cs->sc_dksc;
 
 	unit = CGDUNIT(dev);
 	cgu = (struct cgd_user *)data;
@@ -765,7 +765,7 @@ cgd_ioctl_get(dev_t dev, void *data, str
 		return EINVAL;	/* XXX: should this be ENXIO? */
 
 	cs = device_lookup_private(&cgd_cd, unit);
-	if (cs == NULL || (cs->sc_dksc.sc_flags & DKF_INITED) == 0) {
+	if (cs == NULL || (dksc->sc_flags & DKF_INITED) == 0) {
 		cgu->cgu_dev = 0;
 		cgu->cgu_alg[0] = '\0';
 		cgu->cgu_blocksize = 0;
@@ -787,14 +787,14 @@ static int
 cgdinit(struct cgd_softc *cs, const char *cpath, struct vnode *vp,
 	struct lwp *l)
 {
-	struct	dk_geom *pdg;
+	struct	disk_geom *dg;
 	struct	vattr va;
 	int	ret;
 	char	*tmppath;
 	uint64_t psize;
 	unsigned secsize;
+	struct dk_softc *dksc = &cs->sc_dksc;
 
-	cs->sc_dksc.sc_size = 0;
 	cs->sc_tvn = vp;
 	cs->sc_tpath = NULL;
 
@@ -821,19 +821,20 @@ cgdinit(struct cgd_softc *cs, const char
 		goto bail;
 	}
 
-	cs->sc_dksc.sc_size = psize;
-
 	/*
 	 * XXX here we should probe the underlying device.  If we
 	 *     are accessing a partition of type RAW_PART, then
 	 *     we should populate our initial geometry with the
 	 *     geometry that we discover from the device.
 	 */
-	pdg = &cs->sc_dksc.sc_geom;
-	pdg->pdg_secsize = DEV_BSIZE;
-	pdg->pdg_ntracks = 1;
-	pdg->pdg_nsectors = 1024 * (1024 / pdg->pdg_secsize);
-	pdg->pdg_ncylinders = cs->sc_dksc.sc_size / pdg->pdg_nsectors;
+	dg = &dksc->sc_dkdev.dk_geom;
+	memset(dg, 0, sizeof(*dg));
+	dg->dg_secperunit = psize;
+	// XXX: Inherit?
+	dg->dg_secsize = DEV_BSIZE;
+	dg->dg_ntracks = 1;
+	dg->dg_nsectors = 1024 * (1024 / dg->dg_secsize);
+	dg->dg_ncylinders = dg->dg_secperunit / dg->dg_nsectors;
 
 bail:
 	free(tmppath, M_TEMP);

Reply via email to