summaryrefslogtreecommitdiffstats
path: root/sys/geom/vinum/geom_vinum.c
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2004-07-05 13:24:22 +0000
committerpjd <pjd@FreeBSD.org>2004-07-05 13:24:22 +0000
commitc3fce26a1fd15bf5024b15e70a30388013c683b6 (patch)
tree9bc2e74930010d76fb843218128abb55f19bc61a /sys/geom/vinum/geom_vinum.c
parent99daa57e073ba3543a1793b38239966d5621bab6 (diff)
downloadFreeBSD-src-c3fce26a1fd15bf5024b15e70a30388013c683b6.zip
FreeBSD-src-c3fce26a1fd15bf5024b15e70a30388013c683b6.tar.gz
g_clone_bio() can fail, be ready for this.
Approved by: le
Diffstat (limited to 'sys/geom/vinum/geom_vinum.c')
-rw-r--r--sys/geom/vinum/geom_vinum.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/geom/vinum/geom_vinum.c b/sys/geom/vinum/geom_vinum.c
index c4e96f4..ebd92e2 100644
--- a/sys/geom/vinum/geom_vinum.c
+++ b/sys/geom/vinum/geom_vinum.c
@@ -93,8 +93,12 @@ gv_start(struct bio *bp)
case BIO_WRITE:
case BIO_DELETE:
bp2 = g_clone_bio(bp);
- bp2->bio_done = g_std_done;
- g_io_request(bp2, LIST_FIRST(&gp->consumer));
+ if (bp2 == NULL)
+ g_io_deliver(bp, ENOMEM);
+ else {
+ bp2->bio_done = g_std_done;
+ g_io_request(bp2, LIST_FIRST(&gp->consumer));
+ }
return;
default:
g_io_deliver(bp, EOPNOTSUPP);
OpenPOWER on IntegriCloud