block: Don't count_vm_events for discard bio in submit_bio.
authorTao Ma <tao.ma@oracle.com>
Wed, 23 Jun 2010 23:43:57 +0000 (07:43 +0800)
committerJens Axboe <jaxboe@fusionio.com>
Thu, 24 Jun 2010 06:14:22 +0000 (08:14 +0200)
In submit_bio, we count vm events by check READ/WRITE.
But actually DISCARD_NOBARRIER also has the WRITE flag set.
It looks as if in blkdev_issue_discard, we also add a
page as the payload and the bio_has_data check isn't enough.
So add another check for discard bio.

Signed-off-by: Tao Ma <tao.ma@oracle.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
block/blk-core.c

index 3deca77e025464d9ae0ec445ca927ed106ed3c18..f0640d7f800f7164c5b04a59791410a029a48cc4 100644 (file)
@@ -1583,7 +1583,7 @@ void submit_bio(int rw, struct bio *bio)
         * If it's a regular read/write or a barrier with data attached,
         * go through the normal accounting stuff before submission.
         */
-       if (bio_has_data(bio)) {
+       if (bio_has_data(bio) && !(rw & (1 << BIO_RW_DISCARD))) {
                if (rw & WRITE) {
                        count_vm_events(PGPGOUT, count);
                } else {