Centos-kernel-stream-9/drivers/md
Benjamin Marzinski f67f98a38d dm cache policy smq: ensure IO doesn't prevent cleaner policy progress
Bugzilla: https://bugzilla.redhat.com/2159623
Upstream Status: kernel/git/torvalds/linux.git

commit 1e4ab7b4c881cf26c1c72b3f56519e03475486fb
Author: Joe Thornber <ejt@redhat.com>
Date:   Tue Jul 25 11:44:41 2023 -0400

    dm cache policy smq: ensure IO doesn't prevent cleaner policy progress

    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: Benjamin Marzinski <bmarzins@redhat.com>
2023-07-31 17:15:07 -05:00
..
bcache mm: shrinkers: provide shrinkers with names 2023-03-24 11:19:17 -04:00
persistent-data dm: add missing blank line after declarations/fix those 2023-03-16 17:15:16 -05:00
Kconfig
Makefile dm: verity-loadpin: Use CONFIG_SECURITY_LOADPIN_VERITY for conditional compilation 2022-11-04 16:53:14 -05:00
dm-audit.c dm: add missing SPDX-License-Indentifiers 2023-03-16 17:15:10 -05:00
dm-audit.h
dm-bio-prison-v1.c dm: improve hash_locks sizing and hash function 2023-04-26 16:47:41 -05:00
dm-bio-prison-v1.h dm bio prison v1: add dm_cell_key_has_valid_range 2023-04-26 16:47:39 -05:00
dm-bio-prison-v2.c dm: address space issues relative to switch/while/for/... 2023-03-16 17:15:12 -05:00
dm-bio-prison-v2.h dm: change "unsigned" to "unsigned int" 2023-03-16 17:15:11 -05:00
dm-bio-record.h dm: add missing SPDX-License-Indentifiers 2023-03-16 17:15:10 -05:00
dm-bufio.c dm: improve hash_locks sizing and hash function 2023-04-26 16:47:41 -05:00
dm-builtin.c dm: adjust EXPORT_SYMBOL() to follow functions immediately 2023-03-16 17:15:15 -05:00
dm-cache-background-tracker.c dm: change "unsigned" to "unsigned int" 2023-03-16 17:15:11 -05:00
dm-cache-background-tracker.h dm: change "unsigned" to "unsigned int" 2023-03-16 17:15:11 -05:00
dm-cache-block-types.h dm: add missing SPDX-License-Indentifiers 2023-03-16 17:15:10 -05:00
dm-cache-metadata.c dm: prefer '"%s...", __func__' 2023-03-16 17:15:15 -05:00
dm-cache-metadata.h dm: change "unsigned" to "unsigned int" 2023-03-16 17:15:11 -05:00
dm-cache-policy-internal.h dm: add missing empty lines 2023-03-16 17:15:14 -05:00
dm-cache-policy-smq.c dm cache policy smq: ensure IO doesn't prevent cleaner policy progress 2023-07-31 17:15:07 -05:00
dm-cache-policy.c dm: change "unsigned" to "unsigned int" 2023-03-16 17:15:11 -05:00
dm-cache-policy.h dm: address indent/space issues 2023-03-16 17:15:12 -05:00
dm-cache-target.c dm: push error reporting down to dm_register_target() 2023-04-26 16:47:42 -05:00
dm-clone-metadata.c
dm-clone-metadata.h
dm-clone-target.c dm: push error reporting down to dm_register_target() 2023-04-26 16:47:42 -05:00
dm-core.h dm: add argument identifier names 2023-03-16 17:15:14 -05:00
dm-crypt.c dm: add helper macro for simple DM target module init and exit 2023-04-26 16:47:43 -05:00
dm-delay.c dm: add helper macro for simple DM target module init and exit 2023-04-26 16:47:43 -05:00
dm-dust.c dm: add helper macro for simple DM target module init and exit 2023-04-26 16:47:43 -05:00
dm-ebs-target.c dm: add helper macro for simple DM target module init and exit 2023-04-26 16:47:43 -05:00
dm-era-target.c dm: add helper macro for simple DM target module init and exit 2023-04-26 16:47:43 -05:00
dm-exception-store.c dm: change "unsigned" to "unsigned int" 2023-03-16 17:15:11 -05:00
dm-exception-store.h dm: avoid spaces before function arguments or in favour of tabs 2023-03-16 17:15:14 -05:00
dm-flakey.c dm flakey: add an "error_reads" option 2023-04-26 16:47:45 -05:00
dm-ima.c dm: avoid inline filenames 2023-03-16 17:15:16 -05:00
dm-ima.h dm: avoid inline filenames 2023-03-16 17:15:16 -05:00
dm-init.c dm: avoid inline filenames 2023-03-16 17:15:16 -05:00
dm-integrity.c dm: remove unnecessary (void*) conversions 2023-04-26 16:47:43 -05:00
dm-io-rewind.c dm: avoid void function return statements 2023-03-16 17:15:18 -05:00
dm-io-tracker.h dm: add missing SPDX-License-Indentifiers 2023-03-16 17:15:10 -05:00
dm-io.c dm: remove unnecessary (void*) conversions 2023-04-26 16:47:43 -05:00
dm-ioctl.c dm: don't lock fs when the map is NULL during suspend or resume 2023-06-20 15:46:22 -05:00
dm-kcopyd.c dm: remove unnecessary (void*) conversions 2023-04-26 16:47:43 -05:00
dm-linear.c dm: remove unnecessary (void*) conversions 2023-04-26 16:47:43 -05:00
dm-log-userspace-base.c dm: avoid void function return statements 2023-03-16 17:15:18 -05:00
dm-log-userspace-transfer.c dm: avoid split of quoted strings where possible 2023-03-16 17:15:15 -05:00
dm-log-userspace-transfer.h dm: add missing SPDX-License-Indentifiers 2023-03-16 17:15:10 -05:00
dm-log-writes.c dm: add helper macro for simple DM target module init and exit 2023-04-26 16:47:43 -05:00
dm-log.c dm: remove unnecessary (void*) conversions 2023-04-26 16:47:43 -05:00
dm-mpath.c dm: push error reporting down to dm_register_target() 2023-04-26 16:47:42 -05:00
dm-mpath.h dm: change "unsigned" to "unsigned int" 2023-03-16 17:15:11 -05:00
dm-path-selector.c dm: adjust EXPORT_SYMBOL() to follow functions immediately 2023-03-16 17:15:15 -05:00
dm-path-selector.h dm: avoid spaces before function arguments or in favour of tabs 2023-03-16 17:15:14 -05:00
dm-ps-historical-service-time.c dm: add missing SPDX-License-Indentifiers 2023-03-16 17:15:10 -05:00
dm-ps-io-affinity.c dm: address space issues relative to switch/while/for/... 2023-03-16 17:15:12 -05:00
dm-ps-queue-length.c dm: avoid spaces before function arguments or in favour of tabs 2023-03-16 17:15:14 -05:00
dm-ps-round-robin.c dm: correct block comments format. 2023-03-16 17:15:12 -05:00
dm-ps-service-time.c dm: avoid spaces before function arguments or in favour of tabs 2023-03-16 17:15:14 -05:00
dm-raid.c dm: add helper macro for simple DM target module init and exit 2023-04-26 16:47:43 -05:00
dm-raid1.c dm: remove unnecessary (void*) conversions 2023-04-26 16:47:43 -05:00
dm-region-hash.c dm: correct block comments format. 2023-03-16 17:15:12 -05:00
dm-rq.c dm: avoid using symbolic permissions 2023-03-16 17:15:15 -05:00
dm-rq.h dm: change "unsigned" to "unsigned int" 2023-03-16 17:15:11 -05:00
dm-snap-persistent.c dm: remove unnecessary (void*) conversions 2023-04-26 16:47:43 -05:00
dm-snap-transient.c dm: avoid split of quoted strings where possible 2023-03-16 17:15:15 -05:00
dm-snap.c dm: push error reporting down to dm_register_target() 2023-04-26 16:47:42 -05:00
dm-stats.c dm stats: check for and propagate alloc_percpu failure 2023-04-26 16:47:36 -05:00
dm-stats.h dm stats: check for and propagate alloc_percpu failure 2023-04-26 16:47:36 -05:00
dm-stripe.c dm: remove unnecessary (void*) conversions 2023-04-26 16:47:43 -05:00
dm-switch.c dm: add helper macro for simple DM target module init and exit 2023-04-26 16:47:43 -05:00
dm-sysfs.c dm sysfs: make kobj_type structure constant 2023-03-16 17:15:20 -05:00
dm-table.c dm table: allow targets without devices to set ->io_hints 2023-04-26 16:47:41 -05:00
dm-target.c dm: push error reporting down to dm_register_target() 2023-04-26 16:47:42 -05:00
dm-thin-metadata.c dm thin metadata: check fail_io before using data_sm 2023-06-20 15:47:02 -05:00
dm-thin-metadata.h dm: add missing SPDX-License-Indentifiers 2023-03-16 17:15:10 -05:00
dm-thin.c dm thin: fix issue_discard to pass GFP_NOIO to __blkdev_issue_discard 2023-06-20 15:47:11 -05:00
dm-uevent.c dm: avoid spaces before function arguments or in favour of tabs 2023-03-16 17:15:14 -05:00
dm-uevent.h dm: fix undue/missing spaces 2023-03-16 17:15:13 -05:00
dm-unstripe.c dm: add helper macro for simple DM target module init and exit 2023-04-26 16:47:43 -05:00
dm-verity-fec.c dm: remove unnecessary (void*) conversions 2023-04-26 16:47:43 -05:00
dm-verity-fec.h dm: change "unsigned" to "unsigned int" 2023-03-16 17:15:11 -05:00
dm-verity-loadpin.c dm: verity-loadpin: Only trust verity targets with enforcement 2022-11-04 16:53:15 -05:00
dm-verity-target.c dm: add helper macro for simple DM target module init and exit 2023-04-26 16:47:43 -05:00
dm-verity-verify-sig.c dm: add missing SPDX-License-Indentifiers 2023-03-16 17:15:10 -05:00
dm-verity-verify-sig.h dm: add missing SPDX-License-Indentifiers 2023-03-16 17:15:10 -05:00
dm-verity.h dm: change "unsigned" to "unsigned int" 2023-03-16 17:15:11 -05:00
dm-writecache.c dm: add helper macro for simple DM target module init and exit 2023-04-26 16:47:43 -05:00
dm-zero.c dm: add helper macro for simple DM target module init and exit 2023-04-26 16:47:43 -05:00
dm-zone.c dm: add missing SPDX-License-Indentifiers 2023-03-16 17:15:10 -05:00
dm-zoned-metadata.c dm: remove unnecessary (void*) conversions 2023-04-26 16:47:43 -05:00
dm-zoned-reclaim.c
dm-zoned-target.c dm: add helper macro for simple DM target module init and exit 2023-04-26 16:47:43 -05:00
dm-zoned.h
dm.c Merge: dm: fix outstanding device-mapper bugs submitted to upstream 2023-07-12 09:49:05 +02:00
dm.h dm: improve hash_locks sizing and hash function 2023-04-26 16:47:41 -05:00
md-autodetect.c md: return the allocated devices from md_alloc 2022-10-27 14:42:05 -04:00
md-bitmap.c md: Use optimal I/O size for last bitmap page 2023-05-01 12:04:56 -04:00
md-bitmap.h
md-cluster.c
md-cluster.h
md-faulty.c
md-linear.c md: add error_handlers for raid0 and linear 2023-05-01 12:04:56 -04:00
md-linear.h
md-multipath.c
md-multipath.h
md.c md: fix soft lockup in status_resync 2023-05-01 12:04:56 -04:00
md.h md: add error_handlers for raid0 and linear 2023-05-01 12:04:56 -04:00
raid0.c md: add error_handlers for raid0 and linear 2023-05-01 12:04:56 -04:00
raid0.h
raid1-10.c
raid1.c block: remove bio_set_op_attrs 2023-03-11 23:27:34 +08:00
raid1.h
raid5-cache.c md/raid5: use bdev_write_cache instead of open coding it 2022-11-16 14:21:37 -05:00
raid5-log.h
raid5-ppl.c md/raid5: use bdev_write_cache instead of open coding it 2022-11-16 14:21:37 -05:00
raid5.c md/raid5: remove unused working_disks variable 2023-05-01 12:04:56 -04:00
raid5.h md/raid5: Cleanup prototype of raid5_get_active_stripe() 2022-10-27 14:42:10 -04:00
raid10.c md/raid10: don't call bio_start_io_acct twice for bio which experienced read error 2023-05-01 12:04:56 -04:00
raid10.h md/raid10: convert resync_lock to use seqlock 2022-10-27 14:42:13 -04:00