Joe Thornber
81cd6ceee7
dm cache policy smq: ensure IO doesn't prevent cleaner policy progress
...
commit 1e4ab7b4c881cf26c1c72b3f56519e03475486fb upstream.
When using the cleaner policy to decommission the cache, there is
never any writeback started from the cache as it is constantly delayed
due to normal I/O keeping the device busy. Meaning @idle=false was
always being passed to clean_target_met()
Fix this by adding a specific 'cleaner' flag that is set when the
cleaner policy is configured. This flag serves to always allow the
cleaner's writeback work to be queued until the cache is
decommissioned (even if the cache isn't idle).
Reported-by: David Jeffery <djeffery@redhat.com>
Fixes: b29d4986d0 ("dm cache: significant rework to leverage dm-bio-prison-v2")
Cc: stable@vger.kernel.org
Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-08-11 11:53:53 +02:00
..
bcache
bcache: Fix __bch_btree_node_alloc to make the failure behavior consistent
2023-08-11 11:53:44 +02:00
persistent-data
dm space map common: add bounds check to sm_ll_lookup_bitmap()
2022-01-27 09:19:46 +01:00
dm-bio-prison-v1.c
dm-bio-prison-v1.h
dm-bio-prison-v2.c
dm-bio-prison-v2.h
dm-bio-record.h
dm-bufio.c
dm-builtin.c
dm-cache-background-tracker.c
dm-cache-background-tracker.h
dm-cache-block-types.h
dm-cache-metadata.c
dm cache: Fix ABBA deadlock between shrink_slab and dm_cache_metadata_abort
2023-01-18 11:41:46 +01:00
dm-cache-metadata.h
dm-cache-policy-internal.h
dm-cache-policy-smq.c
dm cache policy smq: ensure IO doesn't prevent cleaner policy progress
2023-08-11 11:53:53 +02:00
dm-cache-policy.c
dm-cache-policy.h
dm-cache-target.c
dm cache: add cond_resched() to various workqueue loops
2023-03-11 16:43:58 +01:00
dm-clone-metadata.c
dm-clone-metadata.h
dm-clone-target.c
dm clone: call kmem_cache_destroy() in dm_clone_init() error path
2023-05-17 11:35:56 +02:00
dm-core.h
dm-crypt.c
dm crypt: add cond_resched() to dmcrypt_write()
2023-04-05 11:16:41 +02:00
dm-delay.c
dm-dust.c
dm-era-target.c
dm era: commit metadata in postsuspend after worker stops
2022-06-29 08:58:45 +02:00
dm-exception-store.c
dm-exception-store.h
dm-flakey.c
dm flakey: fix a crash with invalid table line
2023-05-17 11:35:56 +02:00
dm-init.c
dm-integrity.c
dm integrity: call kmem_cache_destroy() in dm_integrity_init() error path
2023-05-17 11:35:56 +02:00
dm-io.c
treewide: Remove uninitialized_var() usage
2023-06-09 10:29:01 +02:00
dm-ioctl.c
treewide: Remove uninitialized_var() usage
2023-06-09 10:29:01 +02:00
dm-kcopyd.c
dm-linear.c
dm-log-userspace-base.c
dm-log-userspace-transfer.c
dm-log-userspace-transfer.h
dm-log-writes.c
dm-log.c
dm mirror log: clear log bits up to BITS_PER_LONG boundary
2022-06-29 08:58:45 +02:00
dm-mpath.c
dm-mpath.h
dm-path-selector.c
dm-path-selector.h
dm-queue-length.c
dm-raid.c
dm raid: fix missing reconfig_mutex unlock in raid_ctr() error paths
2023-08-11 11:53:49 +02:00
dm-raid1.c
dm-region-hash.c
dm-round-robin.c
dm-rq.c
dm-rq.h
dm-service-time.c
dm-snap-persistent.c
treewide: Remove uninitialized_var() usage
2023-06-09 10:29:01 +02:00
dm-snap-transient.c
dm-snap.c
dm-stats.c
dm stats: check for and propagate alloc_percpu failure
2023-04-05 11:16:41 +02:00
dm-stats.h
dm stats: check for and propagate alloc_percpu failure
2023-04-05 11:16:41 +02:00
dm-stripe.c
dm-switch.c
dm-sysfs.c
dm-table.c
treewide: Remove uninitialized_var() usage
2023-06-09 10:29:01 +02:00
dm-target.c
dm-thin-metadata.c
dm thin: Use last transaction's pmd->root when commit failed
2023-01-18 11:41:47 +01:00
dm-thin-metadata.h
dm-thin.c
dm thin: fix deadlock when swapping to thin device
2023-04-05 11:16:40 +02:00
dm-uevent.c
dm-uevent.h
dm-unstripe.c
dm-verity-fec.c
dm-verity-fec.h
dm-verity-target.c
dm verity: fix error handling for check_at_most_once on FEC
2023-05-17 11:35:57 +02:00
dm-verity-verify-sig.c
dm verity: fix require_signatures module_param permissions
2021-06-16 11:59:37 +02:00
dm-verity-verify-sig.h
dm-verity.h
dm-writecache.c
dm writecache: set a default MAX_WRITEBACK_JOBS
2022-08-25 11:18:14 +02:00
dm-zero.c
dm-zoned-metadata.c
dm-zoned-reclaim.c
dm-zoned-target.c
dm-zoned.h
dm.c
dm stats: check for and propagate alloc_percpu failure
2023-04-05 11:16:41 +02:00
dm.h
Kconfig
Makefile
md-bitmap.c
md/raid10: check slab-out-of-bounds in md_bitmap_get_counter
2023-07-27 08:37:04 +02:00
md-bitmap.h
md-cluster.c
md-cluster.h
md-faulty.c
md-linear.c
md-linear.h
md-multipath.c
md-multipath.h
md.c
md: fix data corruption for raid456 when reshape restart while grow up
2023-07-27 08:37:41 +02:00
md.h
raid0.c
md/raid0: add discard support for the 'original' layout
2023-07-27 08:37:37 +02:00
raid0.h
md/raid0: add discard support for the 'original' layout
2023-07-27 08:37:37 +02:00
raid1-10.c
raid1.c
md/raid1: stop mdx_raid1 thread when raid1 array run failed
2023-01-18 11:41:37 +01:00
raid1.h
raid5-cache.c
raid5-log.h
raid5-ppl.c
raid5.c
treewide: Remove uninitialized_var() usage
2023-06-09 10:29:01 +02:00
raid5.h
raid10.c
md/raid10: prevent soft lockup while flush writes
2023-07-27 08:37:41 +02:00
raid10.h