Module Name: src
Committed By: christos
Date: Wed May 29 23:11:56 UTC 2013
Modified Files:
src/sys/arch/xen/xen: xbd_xenbus.c
Log Message:
get dir of dk_geom.
To generate a diff of this commit:
cvs rdiff -u -r1.58 -r1.59 src/sys/arch/xen/xen/xbd_xenbus.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/arch/xen/xen/xbd_xenbus.c
diff -u src/sys/arch/xen/xen/xbd_xenbus.c:1.58 src/sys/arch/xen/xen/xbd_xenbus.c:1.59
--- src/sys/arch/xen/xen/xbd_xenbus.c:1.58 Tue May 28 20:47:48 2013
+++ src/sys/arch/xen/xen/xbd_xenbus.c Wed May 29 19:11:56 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: xbd_xenbus.c,v 1.58 2013/05/29 00:47:48 christos Exp $ */
+/* $NetBSD: xbd_xenbus.c,v 1.59 2013/05/29 23:11:56 christos Exp $ */
/*
* Copyright (c) 2006 Manuel Bouyer.
@@ -50,7 +50,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: xbd_xenbus.c,v 1.58 2013/05/29 00:47:48 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: xbd_xenbus.c,v 1.59 2013/05/29 23:11:56 christos Exp $");
#include "opt_xen.h"
@@ -512,7 +512,7 @@ abort_transaction:
static void xbd_backend_changed(void *arg, XenbusState new_state)
{
struct xbd_xenbus_softc *sc = device_private((device_t)arg);
- struct dk_geom *pdg;
+ struct disk_geom *dg;
char buf[9];
int s;
@@ -553,12 +553,15 @@ static void xbd_backend_changed(void *ar
sc->sc_xbdsize =
sc->sc_sectors * (uint64_t)sc->sc_secsize / DEV_BSIZE;
- sc->sc_dksc.sc_size = sc->sc_xbdsize;
- pdg = &sc->sc_dksc.sc_geom;
- pdg->pdg_secsize = DEV_BSIZE;
- pdg->pdg_ntracks = 1;
- pdg->pdg_nsectors = 1024 * (1024 / pdg->pdg_secsize);
- pdg->pdg_ncylinders = sc->sc_dksc.sc_size / pdg->pdg_nsectors;
+ dg = &sc->sc_dksc.sc_dkdev.dk_geom;
+ memset(dg, 0, sizeof(*dg));
+
+ dg->dg_secperunit = sc->sc_xbdsize;
+ dg->dg_secsize = DEV_BSIZE;
+ dg->dg_ntracks = 1;
+ // XXX: Ok to hard-code DEV_BSIZE?
+ dg->dg_nsectors = 1024 * (1024 / dg->dg_secsize);
+ dg->dg_ncylinders = dg->dg_secperunit / dg->dg_nsectors;
bufq_alloc(&sc->sc_dksc.sc_bufq, "fcfs", 0);
sc->sc_dksc.sc_flags |= DKF_INITED;
@@ -571,19 +574,10 @@ static void xbd_backend_changed(void *ar
format_bytes(buf, sizeof(buf), sc->sc_sectors * sc->sc_secsize);
aprint_verbose_dev(sc->sc_dksc.sc_dev,
"%s, %d bytes/sect x %" PRIu64 " sectors\n",
- buf, (int)pdg->pdg_secsize, sc->sc_xbdsize);
+ buf, (int)dg->dg_secsize, sc->sc_xbdsize);
/* Discover wedges on this disk. */
dkwedge_discover(&sc->sc_dksc.sc_dkdev);
- struct disk_geom *dg = &sc->sc_dksc.sc_dkdev.dk_geom;
- memset(dg, 0, sizeof(*dg));
-
- dg->dg_secperunit = sc->sc_dksc.sc_size;
- dg->dg_secsize = pdg->pdg_secsize;
- dg->dg_nsectors = pdg->pdg_nsectors;
- dg->dg_ntracks = pdg->pdg_ntracks;
- dg->dg_ncylinders = pdg->pdg_ncylinders;
-
disk_set_info(sc->sc_dksc.sc_dev, &sc->sc_dksc.sc_dkdev, NULL);
/* the disk should be working now */