From: Ming Lei <tom.leiming@gmail.com>
Date: Sat, 10 May 2014 21:43:14 +0000 (-0600)
Subject: blk-mq: bitmap tag: select random tag betweet 0 and (depth - 1)
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=9d3d21aeb4f194cd7ac205abe68b14b47ae736a8;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git

blk-mq: bitmap tag: select random tag betweet 0 and (depth - 1)

The selected tag should be selected at random between 0 and
(depth - 1) with probability 1/depth, instead between 0 and
(depth - 2) with probability 1/(depth - 1).

Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
---

diff --git a/block/blk-mq-tag.c b/block/blk-mq-tag.c
index 5a83d8e587f7..f196e60178f4 100644
--- a/block/blk-mq-tag.c
+++ b/block/blk-mq-tag.c
@@ -449,10 +449,7 @@ void blk_mq_tag_init_last_tag(struct blk_mq_tags *tags, unsigned int *tag)
 {
 	unsigned int depth = tags->nr_tags - tags->nr_reserved_tags;
 
-	if (depth > 1)
-		*tag = prandom_u32() % (depth - 1);
-	else
-		*tag = 0;
+	*tag = prandom_u32() % depth;
 }
 
 ssize_t blk_mq_tag_sysfs_show(struct blk_mq_tags *tags, char *page)