On 01/02/2018 08:39 PM, Zhai Zhaoxuan wrote: > The function cached_dev_make_request() and flash_dev_make_request() call > generic_start_io_acct() with (struct bcache_device)->disk when they start a > closure. Then the function bio_complete() calls generic_end_io_acct() with > (struct search)->orig_bio->bi_disk when the closure has done. > Since the `bi_disk` is not the bcache device, the generic_end_io_acct() is > called with a wrong device queue. > > It causes the "inflight" (in struct hd_struct) counter keep increasing > without decreasing. > > This patch fix the problem by calling generic_end_io_acct() with > (struct bcache_device)->disk. > > Signed-off-by: Zhai Zhaoxuan <kxuanobj@xxxxxxxxx> Verified, looks good to me, added to my for-next staging branch. Reviewed-by: Michael Lyle <mlyle@xxxxxxxx>