Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 10 Mar 2016 06:25:39 +0000 (UTC)
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r296606 - head/sys/geom/sched
Message-ID:  <201603100625.u2A6Pd1E034340@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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) &&



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201603100625.u2A6Pd1E034340>