blk-rq-qos: make depth comparisons unsigned
authorJosef Bacik <josef@toxicpanda.com>
Fri, 20 Jul 2018 01:42:13 +0000 (21:42 -0400)
committerJens Axboe <axboe@kernel.dk>
Sun, 22 Jul 2018 17:30:53 +0000 (11:30 -0600)
With the change to use UINT_MAX I broke the depth check as any value of
inflight (ie 0) would be less than (int)UINT_MAX.  Fix this by changing
everything to unsigned int to match the depth.

Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-rq-qos.c
block/blk-rq-qos.h

index 5134b24482f6182de5a4e72add5ec73ff10ff918..0005dfd568dd5baaf3804106b25ef6a37b2a79ee 100644 (file)
@@ -4,12 +4,12 @@
  * Increment 'v', if 'v' is below 'below'. Returns true if we succeeded,
  * false if 'v' + 1 would be bigger than 'below'.
  */
-static bool atomic_inc_below(atomic_t *v, int below)
+static bool atomic_inc_below(atomic_t *v, unsigned int below)
 {
-       int cur = atomic_read(v);
+       unsigned int cur = atomic_read(v);
 
        for (;;) {
-               int old;
+               unsigned int old;
 
                if (cur >= below)
                        return false;
@@ -22,7 +22,7 @@ static bool atomic_inc_below(atomic_t *v, int below)
        return true;
 }
 
-bool rq_wait_inc_below(struct rq_wait *rq_wait, int limit)
+bool rq_wait_inc_below(struct rq_wait *rq_wait, unsigned int limit)
 {
        return atomic_inc_below(&rq_wait->inflight, limit);
 }
index d5e2f68fe41e0052a35c807ccad0c2b3599b85a3..32b02efbfa66dda638a02d07aa00c63df48a5dab 100644 (file)
@@ -93,7 +93,7 @@ static inline void rq_qos_del(struct request_queue *q, struct rq_qos *rqos)
        }
 }
 
-bool rq_wait_inc_below(struct rq_wait *rq_wait, int limit);
+bool rq_wait_inc_below(struct rq_wait *rq_wait, unsigned int limit);
 void rq_depth_scale_up(struct rq_depth *rqd);
 void rq_depth_scale_down(struct rq_depth *rqd, bool hard_throttle);
 bool rq_depth_calc_max_depth(struct rq_depth *rqd);