diff options
author | phk <phk@FreeBSD.org> | 2003-02-11 15:23:41 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2003-02-11 15:23:41 +0000 |
commit | 75f224dcecc739a5e47efb7f7e631335612c3db3 (patch) | |
tree | 8316985414fa526c1186d252005fde5ec5ac0cb6 /sys/geom/geom_slice.c | |
parent | dc511a894068eaa8afdb3633422235ce1e130f9b (diff) | |
download | FreeBSD-src-75f224dcecc739a5e47efb7f7e631335612c3db3.zip FreeBSD-src-75f224dcecc739a5e47efb7f7e631335612c3db3.tar.gz |
Don't divide by zero if there is no stripewidth specified.
Diffstat (limited to 'sys/geom/geom_slice.c')
-rw-r--r-- | sys/geom/geom_slice.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/geom/geom_slice.c b/sys/geom/geom_slice.c index 11f1380..43fbc5f 100644 --- a/sys/geom/geom_slice.c +++ b/sys/geom/geom_slice.c @@ -348,8 +348,10 @@ g_slice_config(struct g_geom *gp, u_int idx, int how, off_t offset, off_t length pp = g_new_providerf(gp, sbuf_data(sb)); pp2 = LIST_FIRST(&gp->consumer)->provider; pp->flags = pp2->flags & G_PF_CANDELETE; - pp->stripesize = pp2->stripesize; - pp->stripeoffset = (pp2->stripeoffset + offset) % pp->stripesize; + if (pp2->stripesize > 0) { + pp->stripesize = pp2->stripesize; + pp->stripeoffset = (pp2->stripeoffset + offset) % pp->stripesize; + } if (bootverbose) printf("GEOM: Configure %s, start %jd length %jd end %jd\n", pp->name, (intmax_t)offset, (intmax_t)length, |