| From 69daf03adef5f7bc13e0ac86b4b8007df1767aab Mon Sep 17 00:00:00 2001 |
| From: Tang Junhui <tang.junhui@zte.com.cn> |
| Date: Wed, 6 Sep 2017 14:25:53 +0800 |
| Subject: bcache: do not subtract sectors_to_gc for bypassed IO |
| |
| From: Tang Junhui <tang.junhui@zte.com.cn> |
| |
| commit 69daf03adef5f7bc13e0ac86b4b8007df1767aab upstream. |
| |
| Since bypassed IOs use no bucket, so do not subtract sectors_to_gc to |
| trigger gc thread. |
| |
| Signed-off-by: tang.junhui <tang.junhui@zte.com.cn> |
| Acked-by: Coly Li <colyli@suse.de> |
| Reviewed-by: Eric Wheeler <bcache@linux.ewheeler.net> |
| Reviewed-by: Christoph Hellwig <hch@lst.de> |
| Signed-off-by: Jens Axboe <axboe@kernel.dk> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/md/bcache/request.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/md/bcache/request.c |
| +++ b/drivers/md/bcache/request.c |
| @@ -196,12 +196,12 @@ static void bch_data_insert_start(struct |
| struct data_insert_op *op = container_of(cl, struct data_insert_op, cl); |
| struct bio *bio = op->bio, *n; |
| |
| - if (atomic_sub_return(bio_sectors(bio), &op->c->sectors_to_gc) < 0) |
| - wake_up_gc(op->c); |
| - |
| if (op->bypass) |
| return bch_data_invalidate(cl); |
| |
| + if (atomic_sub_return(bio_sectors(bio), &op->c->sectors_to_gc) < 0) |
| + wake_up_gc(op->c); |
| + |
| /* |
| * Journal writes are marked REQ_PREFLUSH; if the original write was a |
| * flush, it'll wait on the journal write. |