summaryrefslogtreecommitdiffstats
path: root/sys/geom/geom_bsd.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2002-09-30 08:54:46 +0000
committerphk <phk@FreeBSD.org>2002-09-30 08:54:46 +0000
commit852521acba9ca655f9805890d434284e77dc3553 (patch)
treeaecab093ebd65e53e9ed7f0ce1ad3248a7fb3cb0 /sys/geom/geom_bsd.c
parent72d7c1eb0e7571a3a567c7dcb80c59931eb6545d (diff)
downloadFreeBSD-src-852521acba9ca655f9805890d434284e77dc3553.zip
FreeBSD-src-852521acba9ca655f9805890d434284e77dc3553.tar.gz
Retire g_io_fail() and let g_io_deliver() take an error argument instead.
Sponsored by: DARPA & NAI Labs.
Diffstat (limited to 'sys/geom/geom_bsd.c')
-rw-r--r--sys/geom/geom_bsd.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/sys/geom/geom_bsd.c b/sys/geom/geom_bsd.c
index d7cd742..f21f6a4 100644
--- a/sys/geom/geom_bsd.c
+++ b/sys/geom/geom_bsd.c
@@ -379,7 +379,6 @@ g_bsd_modify(struct g_geom *gp, struct disklabel *dl)
}
}
-
/* Look good, go for it... */
for (i = 0; i < gsp->nslice; i++) {
ppp = &dl->d_partitions[i];
@@ -478,6 +477,11 @@ g_bsd_ioctl(void *arg)
struct g_bsd_softc *ms;
struct disklabel *dl;
struct g_ioctl *gio;
+ struct g_consumer *cp;
+ u_char *buf;
+ off_t secoff;
+ u_int secsize;
+ int error;
/* We don't need topology for now */
g_topology_unlock();
@@ -493,10 +497,10 @@ g_bsd_ioctl(void *arg)
dl = gio->data;
/* Validate and modify our slice instance to match */
- bp->bio_error = g_bsd_modify(gp, dl); /* picks up topology lock */
- if (bp->bio_error != 0) {
+ error = g_bsd_modify(gp, dl); /* picks up topology lock on success */
+ if (error) {
g_topology_lock();
- g_io_deliver(bp);
+ g_io_deliver(bp, error);
return;
}
/* Update our copy of the disklabel */
@@ -506,7 +510,8 @@ g_bsd_ioctl(void *arg)
/* XXX: DIOCWDINFO write to disk */
/* return the request */
- g_io_deliver(bp);
+ g_io_deliver(bp, 0);
+ return;
}
/*-
@@ -546,8 +551,7 @@ g_bsd_start(struct bio *bp)
case DIOCGDINFO:
/* Return a copy of the disklabel to userland */
bcopy(&ms->inram, gio->data, sizeof ms->inram);
- bp->bio_error = 0;
- g_io_deliver(bp);
+ g_io_deliver(bp, 0);
return (1);
case DIOCSDINFO:
case DIOCWDINFO:
@@ -558,7 +562,7 @@ g_bsd_start(struct bio *bp)
*/
error = g_call_me(g_bsd_ioctl, bp);
if (error)
- g_io_fail(bp, error);
+ g_io_deliver(bp, error);
/*
* We must return non-zero to indicate that we will deal
* with this bio, even though we have not done so yet.
OpenPOWER on IntegriCloud