linux_dsm_epyc7002/drivers/md
Bart Van Assche 7083abbbfc dm mpath: avoid that path removal can trigger an infinite loop
If blk_get_request() fails, check whether the failure is due to a path
being removed.  If that is the case, fail the path by triggering a call
to fail_path().  This avoids that the following scenario can be
encountered while removing paths:
* CPU usage of a kworker thread jumps to 100%.
* Removing the DM device becomes impossible.

Delay requeueing if blk_get_request() returns -EBUSY or -EWOULDBLOCK,
and the queue is not dying, because in these cases immediate requeuing
is inappropriate.

Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
Cc: Hannes Reinecke <hare@suse.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: <stable@vger.kernel.org>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2017-04-27 17:04:27 -04:00
..
bcache sched/headers: Prepare to use <linux/rcuupdate.h> instead of <linux/rculist.h> in <linux/sched.h> 2017-03-02 08:42:38 +01:00
persistent-data dm btree: fix for dm_btree_find_lowest_key() 2017-04-24 14:47:49 -04:00
bitmap.c
bitmap.h
dm-bio-prison-v1.c dm bio prison v2: new interface for the bio prison 2017-03-07 11:30:16 -05:00
dm-bio-prison-v1.h dm bio prison v2: new interface for the bio prison 2017-03-07 11:30:16 -05:00
dm-bio-prison-v2.c dm bio prison v2: new interface for the bio prison 2017-03-07 11:30:16 -05:00
dm-bio-prison-v2.h dm bio prison v2: new interface for the bio prison 2017-03-07 11:30:16 -05:00
dm-bio-record.h
dm-bufio.c dm bufio: add sector start offset to dm-bufio interface 2017-03-07 13:28:33 -05:00
dm-bufio.h dm bufio: add sector start offset to dm-bufio interface 2017-03-07 13:28:33 -05:00
dm-builtin.c
dm-cache-background-tracker.c dm cache: significant rework to leverage dm-bio-prison-v2 2017-03-07 13:28:31 -05:00
dm-cache-background-tracker.h dm cache: significant rework to leverage dm-bio-prison-v2 2017-03-07 13:28:31 -05:00
dm-cache-block-types.h
dm-cache-metadata.c
dm-cache-metadata.h dm cache: significant rework to leverage dm-bio-prison-v2 2017-03-07 13:28:31 -05:00
dm-cache-policy-internal.h dm cache: significant rework to leverage dm-bio-prison-v2 2017-03-07 13:28:31 -05:00
dm-cache-policy-smq.c dm cache policy smq: make the cleaner policy write-back more aggressively 2017-03-31 11:41:05 -04:00
dm-cache-policy.c
dm-cache-policy.h dm cache: significant rework to leverage dm-bio-prison-v2 2017-03-07 13:28:31 -05:00
dm-cache-target.c dm cache: set/clear the cache core's dirty_bitset when loading mappings 2017-03-31 11:33:44 -04:00
dm-core.h
dm-crypt.c dm crypt: replace custom implementation of hex2bin() 2017-04-27 12:08:31 -04:00
dm-delay.c dm: mark targets that pass integrity data 2017-04-24 12:04:32 -04:00
dm-era-target.c dm era: save spacemap metadata root after the pre-commit 2017-04-24 15:02:14 -04:00
dm-exception-store.c
dm-exception-store.h
dm-flakey.c
dm-integrity.c dm integrity: use previously calculated log2 of sectors_per_block 2017-04-27 12:16:32 -04:00
dm-io.c
dm-ioctl.c dm ioctl: prevent stack leak in dm ioctl call 2017-04-27 13:55:13 -04:00
dm-kcopyd.c
dm-linear.c dm: mark targets that pass integrity data 2017-04-24 12:04:32 -04:00
dm-log-userspace-base.c
dm-log-userspace-transfer.c
dm-log-userspace-transfer.h
dm-log-writes.c
dm-log.c
dm-mpath.c dm mpath: avoid that path removal can trigger an infinite loop 2017-04-27 17:04:27 -04:00
dm-mpath.h
dm-path-selector.c
dm-path-selector.h
dm-queue-length.c
dm-raid1.c
dm-raid.c dm raid: add raid4/5/6 journal write-back support via journal_mode option 2017-03-27 12:08:07 -04:00
dm-region-hash.c
dm-round-robin.c
dm-rq.c dm mpath: requeue after a small delay if blk_get_request() fails 2017-04-24 15:06:19 -04:00
dm-rq.h
dm-service-time.c
dm-snap-persistent.c
dm-snap-transient.c
dm-snap.c
dm-stats.c
dm-stats.h
dm-stripe.c dm: mark targets that pass integrity data 2017-04-24 12:04:32 -04:00
dm-switch.c
dm-sysfs.c
dm-table.c dm: mark targets that pass integrity data 2017-04-24 12:04:32 -04:00
dm-target.c
dm-thin-metadata.c
dm-thin-metadata.h
dm-thin.c dm thin: fix a memory leak when passing discard bio down 2017-04-24 14:58:10 -04:00
dm-uevent.c
dm-uevent.h
dm-verity-fec.c dm verity: switch to using asynchronous hash crypto API 2017-04-24 15:37:04 -04:00
dm-verity-fec.h
dm-verity-target.c dm verity: switch to using asynchronous hash crypto API 2017-04-24 15:37:04 -04:00
dm-verity.h dm verity: switch to using asynchronous hash crypto API 2017-04-24 15:37:04 -04:00
dm-zero.c
dm.c dm: mark targets that pass integrity data 2017-04-24 12:04:32 -04:00
dm.h
faulty.c
Kconfig dm raid: select the Kconfig option CONFIG_MD_RAID0 2017-03-30 11:17:08 -04:00
linear.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md 2017-02-24 14:42:19 -08:00
linear.h
Makefile dm: add integrity target 2017-03-24 15:49:07 -04:00
md-cluster.c
md-cluster.h
md.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/signal.h> 2017-03-02 08:42:29 +01:00
md.h
multipath.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md 2017-02-24 14:42:19 -08:00
multipath.h
raid0.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md 2017-02-24 14:42:19 -08:00
raid0.h
raid1.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/signal.h> 2017-03-02 08:42:29 +01:00
raid1.h
raid5-cache.c md: add raid4/5/6 journal mode switching API 2017-03-27 11:13:47 -04:00
raid5.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/signal.h> 2017-03-02 08:42:29 +01:00
raid5.h md: add raid4/5/6 journal mode switching API 2017-03-27 11:13:47 -04:00
raid10.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md 2017-02-24 14:42:19 -08:00
raid10.h