]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 2 Aug 2010 17:30:18 +0000 (10:30 -0700)
commit 1b99973f1c82707e46e8cb9416865a1e955e8f8c upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
block/blk-core.c

index 9fe174dc74d1dfecca76bb19eb9dda2af53f93bd..dd9795d88683347fc6602cff39522f2510e65a75 100644 (file)
@@ -1556,7 +1556,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 {