|
@@ -1787,6 +1787,7 @@ static void writeback_some_dirty_blocks(struct cache *cache)
|
|
dm_cblock_t cblock;
|
|
dm_cblock_t cblock;
|
|
struct prealloc structs;
|
|
struct prealloc structs;
|
|
struct dm_bio_prison_cell *old_ocell;
|
|
struct dm_bio_prison_cell *old_ocell;
|
|
|
|
+ bool busy = !iot_idle_for(&cache->origin_tracker, HZ);
|
|
|
|
|
|
memset(&structs, 0, sizeof(structs));
|
|
memset(&structs, 0, sizeof(structs));
|
|
|
|
|
|
@@ -1794,7 +1795,7 @@ static void writeback_some_dirty_blocks(struct cache *cache)
|
|
if (prealloc_data_structs(cache, &structs))
|
|
if (prealloc_data_structs(cache, &structs))
|
|
break;
|
|
break;
|
|
|
|
|
|
- r = policy_writeback_work(cache->policy, &oblock, &cblock);
|
|
|
|
|
|
+ r = policy_writeback_work(cache->policy, &oblock, &cblock, busy);
|
|
if (r)
|
|
if (r)
|
|
break;
|
|
break;
|
|
|
|
|