Don't assume that bio_cmd is a bit mask.

Differential Revision: https://reviews.freebsd.org/D5592
This commit is contained in:
Warner Losh 2016-03-10 06:25:39 +00:00
parent 8076d204da
commit ca19dfe480
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=296606
2 changed files with 6 additions and 6 deletions

View File

@ -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;
}

View File

@ -375,7 +375,7 @@ g_rr_should_anticipate(struct g_rr_queue *qp, struct bio *bp)
{
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) &&