dm cache: fix incorrect 'idle_time' reset in IO tracker
authorJoe Thornber <ejt@redhat.com>
Thu, 11 May 2017 10:14:16 +0000 (06:14 -0400)
committerMike Snitzer <snitzer@redhat.com>
Mon, 15 May 2017 01:53:11 +0000 (21:53 -0400)
Some bios have no payload (eg, a FLUSH), don't reset the idle_time when
these come in.

Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
drivers/md/dm-cache-target.c

index 1db375f50a1321aae81492d1b3ac6392c52a00c2..0760ba409c21cd5489e7dd8e6ca3a01305e6abac 100644 (file)
@@ -94,6 +94,9 @@ static void iot_io_begin(struct io_tracker *iot, sector_t len)
 
 static void __iot_io_end(struct io_tracker *iot, sector_t len)
 {
+       if (!len)
+               return;
+
        iot->in_flight -= len;
        if (!iot->in_flight)
                iot->idle_time = jiffies;