Thread (27 messages) 27 messages, 3 authors, 2019-10-25

Re: [PATCH v9 10/12] block: don't check blk_rq_is_passthrough() in blk_do_io_stat()

From: Christoph Hellwig <hch@lst.de>
Date: 2019-10-10 10:05:34
Also in: linux-fsdevel, linux-nvme, lkml

quoted hunk ↗ jump to hunk
@@ -319,7 +319,7 @@ static struct request *blk_mq_rq_ctx_init(struct blk_mq_alloc_data *data,
 	rq->cmd_flags = op;
 	if (data->flags & BLK_MQ_REQ_PREEMPT)
 		rq->rq_flags |= RQF_PREEMPT;
-	if (blk_queue_io_stat(data->q))
+	if (blk_queue_io_stat(data->q) && !blk_rq_is_passthrough(rq))
 		rq->rq_flags |= RQF_IO_STAT;
This needs a comment why we don't account passthrough requests by
default.  And I'm really curious about the answer, because I don't
know it myself.
  *	a) it's attached to a gendisk, and
  *	b) the queue had IO stats enabled when this request was started, and
- *	c) it's a file system request
+ *	c) it's a file system request (RQF_IO_STAT will not be set otherwise)
c) should just go away now based on your changes.
 static inline bool blk_do_io_stat(struct request *rq)
 {
 	return rq->rq_disk &&
-	       (rq->rq_flags & RQF_IO_STAT) &&
-		!blk_rq_is_passthrough(rq);
+	       (rq->rq_flags & RQF_IO_STAT);
The check can be collapsed onto a single line now.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help