summaryrefslogtreecommitdiffstats
path: root/sys/geom/geom_slice.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2002-12-13 21:31:13 +0000
committerphk <phk@FreeBSD.org>2002-12-13 21:31:13 +0000
commit43d82ce26df81c3c077b619993e4ee9fb6a999c4 (patch)
treec1addbd65ec26f7c65bcbaf2e691d7f1cfa92a26 /sys/geom/geom_slice.c
parent39fb253bb1358ff4e6ad2deaf867a0f22341574c (diff)
downloadFreeBSD-src-43d82ce26df81c3c077b619993e4ee9fb6a999c4.zip
FreeBSD-src-43d82ce26df81c3c077b619993e4ee9fb6a999c4.tar.gz
Don't interpret the hotspots relative to all slices on a slicer, but
relative to the parent device.
Diffstat (limited to 'sys/geom/geom_slice.c')
-rw-r--r--sys/geom/geom_slice.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/geom/geom_slice.c b/sys/geom/geom_slice.c
index 8bcf52c..82df9fb 100644
--- a/sys/geom/geom_slice.c
+++ b/sys/geom/geom_slice.c
@@ -184,11 +184,12 @@ g_slice_start(struct bio *bp)
* Check if we collide with any hot spaces, and call the
* method once if so.
*/
+ t = bp->bio_offset + gsl->offset;
for (m_index = 0; m_index < gsp->nhot; m_index++) {
gmp = &gsp->hot[m_index];
- if (bp->bio_offset >= gmp->offset + gmp->length)
+ if (t >= gmp->offset + gmp->length)
continue;
- if (bp->bio_offset + bp->bio_length <= gmp->offset)
+ if (t + bp->bio_length <= gmp->offset)
continue;
error = gsp->start(bp);
if (error == EJUSTRETURN)
OpenPOWER on IntegriCloud