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 */