svn commit: r296606 - head/sys/geom/sched
Warner Losh
imp at FreeBSD.org
Thu Mar 10 06:25:41 UTC 2016
Author: imp
Date: Thu Mar 10 06:25:39 2016
New Revision: 296606
URL: https://svnweb.freebsd.org/changeset/base/296606
Log:
Don't assume that bio_cmd is a bit mask.
Differential Revision: https://reviews.freebsd.org/D5592
Modified:
head/sys/geom/sched/g_sched.c
head/sys/geom/sched/gs_rr.c
Modified: head/sys/geom/sched/g_sched.c
==============================================================================
--- head/sys/geom/sched/g_sched.c Thu Mar 10 06:25:31 2016 (r296605)
+++ head/sys/geom/sched/g_sched.c Thu Mar 10 06:25:39 2016 (r296606)
@@ -269,7 +269,7 @@ g_sched_update_stats(struct bio *bio)
me.gs_done++;
me.gs_in_flight--;
me.gs_bytes_in_flight -= bio->bio_length;
- if (bio->bio_cmd & BIO_WRITE) {
+ if (bio->bio_cmd == BIO_WRITE) {
me.gs_writes_in_flight--;
me.gs_write_bytes_in_flight -= bio->bio_length;
}
@@ -754,9 +754,9 @@ static inline char
g_sched_type(struct bio *bp)
{
- if (0 != (bp->bio_cmd & BIO_READ))
+ if (bp->bio_cmd == BIO_READ)
return ('R');
- else if (0 != (bp->bio_cmd & BIO_WRITE))
+ else if (bp->bio_cmd == BIO_WRITE)
return ('W');
return ('U');
}
@@ -829,7 +829,7 @@ g_sched_start(struct bio *bp)
KASSERT(cbp->bio_to != NULL, ("NULL provider"));
/* We only schedule reads and writes. */
- if (0 == (bp->bio_cmd & (BIO_READ | BIO_WRITE)))
+ if (bp->bio_cmd != BIO_READ && bp->bio_cmd != BIO_WRITE)
goto bypass;
G_SCHED_LOGREQ(cbp, "Sending request.");
@@ -860,7 +860,7 @@ g_sched_start(struct bio *bp)
me.gs_in_flight++;
me.gs_requests++;
me.gs_bytes_in_flight += bp->bio_length;
- if (bp->bio_cmd & BIO_WRITE) {
+ if (bp->bio_cmd == BIO_WRITE) {
me.gs_writes_in_flight++;
me.gs_write_bytes_in_flight += bp->bio_length;
}
Modified: head/sys/geom/sched/gs_rr.c
==============================================================================
--- head/sys/geom/sched/gs_rr.c Thu Mar 10 06:25:31 2016 (r296605)
+++ head/sys/geom/sched/gs_rr.c Thu Mar 10 06:25:39 2016 (r296606)
@@ -375,7 +375,7 @@ g_rr_should_anticipate(struct g_rr_queue
{
int wait = get_bounded(&me.wait_ms, 2);
- if (!me.w_anticipate && (bp->bio_cmd & BIO_WRITE))
+ if (!me.w_anticipate && (bp->bio_cmd == BIO_WRITE))
return (0);
if (g_savg_valid(&qp->q_thinktime) &&
More information about the svn-src-all
mailing list