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-head mailing list