linux/drivers
Alexei Naberezhnov f6db722804 md/raid5: fix 'out of memory' during raid cache recovery
commit 483cbbeddd upstream.

This fixes the case when md array assembly fails because of raid cache recovery
unable to allocate a stripe, despite attempts to replay stripes and increase
cache size. This happens because stripes released by r5c_recovery_replay_stripes
and raid5_set_cache_size don't become available for allocation immediately.
Released stripes first are placed on conf->released_stripes list and require
md thread to merge them on conf->inactive_list before they can be allocated.

Patch allows final allocation attempt during cache recovery to wait for
new stripes to become availabe for allocation.

Cc: linux-raid@vger.kernel.org
Cc: Shaohua Li <shli@kernel.org>
Cc: linux-stable <stable@vger.kernel.org> # 4.10+
Fixes: b4c625c673 ("md/r5cache: r5cache recovery: part 1")
Signed-off-by: Alexei Naberezhnov <anaberezhnov@fb.com>
Signed-off-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2019-02-06 17:27:45 +01:00
..
accessibility License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
acpi acpi/nfit: Fix command-supported detection 2019-01-31 08:15:41 +01:00
amba Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2018-06-06 13:49:25 -07:00
android binder: fix use-after-free due to ksys_close() during fdget() 2019-01-09 17:45:59 +01:00
ata libata: whitelist all SAMSUNG MZ7KM* solid-state disks 2018-12-03 12:54:39 -07:00
atm firestream: fix spelling mistake: "Inititing" -> "Initializing" 2018-11-27 15:32:06 -08:00
auxdisplay auxdisplay: charlcd: fix x/y command parsing 2018-12-21 21:27:21 +01:00
base sysfs: Disable lockdep for driver bind/unbind files 2019-01-26 09:20:49 +01:00
bcma bcma: Allow selection of this driver when COMPILE_TEST=y 2018-07-18 09:34:19 +02:00
block nbd: Use set_blocksize() to set device blocksize 2019-01-22 21:10:01 +01:00
bluetooth Bluetooth: btusb: Add support for Intel bluetooth device 8087:0029 2019-01-26 09:20:49 +01:00
bus ARM: SoC driver updates for 4.17 2018-10-29 15:16:01 -07:00
cdrom gdrom: fix mistake in assignment of error 2018-10-25 11:17:40 -06:00
char char/mwave: fix potential Spectre v1 vulnerability 2019-01-31 08:15:39 +01:00
clk clk: socfpga: stratix10: fix naming convention for the fixed-clocks 2019-01-31 08:15:37 +01:00
clocksource clocksource/drivers/integrator-ap: Add missing of_node_put() 2019-01-26 09:20:49 +01:00
connector connector: fix defined but not used warning 2018-07-08 11:00:50 +09:00
cpufreq cpufreq: scmi: Fix frequency invariance in slow path 2019-01-16 22:03:20 +01:00
cpuidle powerpc/pseries/cpuidle: Fix preempt warning 2019-01-26 09:20:44 +01:00
crypto crypto: talitos - fix ablkcipher for CONFIG_VMAP_STACK 2019-01-22 21:09:51 +01:00
dax mm, devm_memremap_pages: fix shutdown handling 2019-01-13 09:24:03 +01:00
dca dca: make function dca_common_get_tag static 2018-04-23 21:02:41 -04:00
devfreq PM / devfreq: remove redundant null pointer check before kfree 2018-10-02 10:16:41 +09:00
dio License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dma dmaengine: dw: Fix FIFO size for Intel Merrifield 2018-12-06 22:53:05 +05:30
dma-buf udmabuf: set read/write flag when exporting 2018-11-16 08:50:53 +01:00
edac EDAC, altera: Fix S10 persistent register offset 2019-01-31 08:15:41 +01:00
eisa EISA: Delete error message for a failed memory allocation in eisa_probe() 2018-01-23 09:04:10 +01:00
extcon extcon: int3496: Convert to use SPDX identifier 2018-08-28 11:21:15 +09:00
firewire FireWire: clean up core-transaction.c kernel-doc 2018-09-06 09:41:09 -06:00
firmware efi/libstub: Disable some warnings for x86{,_64} 2019-01-26 09:20:43 +01:00
fmc treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
fpga fpga: altera-cvp: fix probing for multiple FPGAs on the bus 2019-01-26 09:20:42 +01:00
fsi fsi: fsi-scom.c: Remove duplicate header 2018-11-26 10:13:04 +11:00
gnss gnss: sirf: fix activation retry handling 2018-12-06 17:22:23 +01:00
gpio gpio: sprd: Fix incorrect irq type setting for the async EIC 2019-02-06 17:27:42 +01:00
gpu drm/msm/gpu: fix building without debugfs 2019-02-06 17:27:35 +01:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid 2018-12-10 11:04:41 -08:00
hsi headers: separate linux/mod_devicetable.h from linux/platform_device.h 2018-07-07 17:52:26 +02:00
hv vmbus: fix subchannel removal 2019-01-31 08:15:45 +01:00
hwmon hwmon: (w83795) temp4_type has writable permission 2018-11-18 14:34:56 -08:00
hwspinlock hwspinlock: Fix incorrect return pointers 2018-07-30 20:54:51 -07:00
hwtracing coresight: tmc: Fix bad register address for CLAIM 2019-01-26 09:20:44 +01:00
i2c i2c: dev: prevent adapter retries and timeout being set as minus value 2019-01-16 22:03:24 +01:00
ide ide: fix a typo in the settings proc file name 2019-01-31 08:15:46 +01:00
idle Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-10-23 13:32:18 +01:00
iio iio: dac: ad5686: fix bit shift read register 2019-01-13 09:24:07 +01:00
infiniband IB/hfi1: Add limit test for RC/UC send via loopback 2019-02-06 17:27:43 +01:00
input Input: uinput - fix undefined behavior in uinput_validate_absinfo() 2019-01-31 08:15:40 +01:00
iommu iommu/vt-d: Fix memory leak in intel_iommu_put_resv_regions() 2019-02-06 17:27:40 +01:00
ipack ipack: add error handling for ioremap_nocache 2018-07-07 17:19:27 +02:00
irqchip irqchip/gic-v3-its: Align PCI Multi-MSI allocation on their size 2019-01-31 08:15:43 +01:00
isdn isdn: fix kernel-infoleak in capi_unlocked_ioctl 2019-01-09 17:45:50 +01:00
leds LED fixes for 4.20-rc2 2018-11-08 17:49:04 -06:00
lightnvm lightnvm: pblk: guarantee that backpointer is respected on writer stall 2018-10-09 08:25:08 -06:00
macintosh memblock: stop using implicit alignment to SMP_CACHE_BYTES 2018-10-31 08:54:16 -07:00
mailbox - Convert print users to use the %pOFn format specifier 2018-10-29 10:30:44 -07:00
mcb mcb: Add Altera PCI ID to mcb-pci 2018-03-19 14:20:24 -05:00
md md/raid5: fix 'out of memory' during raid cache recovery 2019-02-06 17:27:45 +01:00
media media: venus: core: Set dma maximum segment size 2019-01-26 09:20:44 +01:00
memory AT91 drivers for 4.20 2018-09-25 13:19:52 -07:00
memstick block: genhd: add 'groups' argument to device_add_disk 2018-09-28 08:30:28 -06:00
message scsi: mptfusion: Remove unnecessary parentheses 2018-09-28 02:13:33 -04:00
mfd mfd: tps6586x: Handle interrupts on suspend 2019-01-22 21:09:53 +01:00
misc misc: ibmvsm: Fix potential NULL pointer dereference 2019-01-31 08:15:38 +01:00
mmc mmc: mediatek: fix incorrect register setting of hs400_cmd_int_delay 2019-02-06 17:27:42 +01:00
mtd mtd: rawnand: qcom: fix memory corruption that causes panic 2019-01-16 22:03:24 +01:00
mux This is the bulk of GPIO changes for the v4.20 series: 2018-10-23 08:45:05 +01:00
net virtio_net: Differentiate sk_buff and xdp_frame on freeing 2019-02-06 17:27:39 +01:00
nfc NFC: nfcmrvl_uart: fix OF child-node lookup 2018-10-23 13:28:53 -05:00
ntb ntb: idt: Alter the driver info comments 2018-11-01 10:33:12 -04:00
nubus nubus: Set default dma mask for nubus_board devices 2018-07-23 15:07:12 +02:00
nvdimm mm, devm_memremap_pages: fix shutdown handling 2019-01-13 09:24:03 +01:00
nvme nvmet-rdma: fix null dereference under heavy load 2019-01-31 08:15:44 +01:00
nvmem nvmem: core: fix regression in of_nvmem_cell_get() 2018-11-11 09:15:29 -08:00
of of: overlay: do not duplicate properties from overlay for new nodes 2019-02-06 17:27:45 +01:00
opp cpufreq: scpi/scmi: Fix freeing of dynamic OPPs 2019-01-16 22:03:20 +01:00
oprofile treewide: Use array_size() in vmalloc() 2018-06-12 16:19:22 -07:00
parisc parisc: Add alternative coding infrastructure 2018-10-17 17:22:26 +02:00
parport Char/Misc driver patches for 4.19-rc1 2018-08-18 11:04:51 -07:00
pci PCI: dwc: Move interrupt acking into the proper callback 2019-01-16 22:03:25 +01:00
pcmcia powerpc updates for 4.20 2018-10-26 14:36:21 -07:00
perf drivers/perf: hisi: Fixup one DDRC PMU register offset 2019-01-13 09:24:08 +01:00
phy phy: qcom-qusb2: Fix HSTX_TRIM tuning with fused value for SDM845 2018-11-21 13:13:58 +05:30
pinctrl pinctrl: sunxi: a83t: Fix IRQ offset typo for PH11 2018-12-07 13:32:19 +01:00
platform platform/x86: asus-nb-wmi: Drop mapping of 0x33 and 0x34 scan codes 2019-02-06 17:27:43 +01:00
pnp media updates for v4.18-rc1 2018-06-07 12:34:37 -07:00
power power: supply: olpc_battery: correct the temperature units 2019-01-13 09:24:09 +01:00
powercap Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-10-23 13:32:18 +01:00
pps pps: generator: use new parport device model 2018-03-14 17:53:06 +01:00
ps3 ps3: Remove deprecated create_singlethread_workqueue 2017-12-04 15:01:08 +11:00
ptp ptp: drop redundant kasprintf() to create worker name 2018-10-28 19:20:06 -07:00
pwm pwm: lpss: Only set update bit if we are actually changing the settings 2018-10-16 13:16:15 +02:00
rapidio drivers/rapidio/devices/rio_mport_cdev.c: remove redundant pointer md 2018-08-22 10:52:51 -07:00
ras mm/memory_failure: Remove unused trapno from memory_failure 2018-01-23 12:17:42 -06:00
regulator regulator: Regulator updates for next release 2018-10-23 01:54:44 +01:00
remoteproc virtio: don't allocate vqs when names[i] = NULL 2019-01-22 21:09:52 +01:00
reset ARM: SoC driver updates for 4.17 2018-10-29 15:16:01 -07:00
rpmsg rpmsg: glink: smem: Support rx peak for size less than 4 bytes 2018-10-03 17:04:32 -07:00
rtc rtc: m41t80: Correct alarm month range with RTC reads 2019-01-09 17:46:04 +01:00
s390 s390/smp: fix CPU hotplug deadlock with CPU rescan 2019-01-31 08:15:38 +01:00
sbus drivers/sbus/char: add of_node_put() 2018-12-02 20:55:23 -08:00
scsi scsi: ufs: Use explicit access size in ufshcd_dump_regs 2019-01-31 08:15:41 +01:00
sfi mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
sh sh: introduce a sh_cacheop_vaddr helper 2018-08-02 13:54:06 +02:00
siox headers: separate linux/mod_devicetable.h from linux/platform_device.h 2018-07-07 17:52:26 +02:00
slimbus slimbus: ngd: remove unnecessary check 2018-11-07 14:59:28 +01:00
sn Drivers: misc: remove __dev* attributes. 2013-01-03 15:57:16 -08:00
soc soc: ti: QMSS: Fix usage of irq_set_affinity_hint 2018-11-02 11:22:09 -07:00
soundwire soundwire: intel: Remove duplicate assignment 2018-08-27 09:49:48 +05:30
spi spi: bcm2835: Unbreak the build of esoteric configs 2019-01-09 17:46:05 +01:00
spmi spmi: pmic-arb: Move the ownership check to irq_chip callback 2017-08-28 13:52:22 +02:00
ssb ssb: chipcommon: fix fall-through annotation 2018-10-05 11:37:20 +03:00
staging staging: rtl8188eu: Add device code for D-Link DWA-121 rev B1 2019-01-31 08:15:39 +01:00
target scsi: target/core: Make sure that target_wait_for_sess_cmds() waits long enough 2019-01-26 09:20:45 +01:00
tc TC: Set DMA masks for devices 2018-10-11 09:16:44 -07:00
tee Misc enhancement for tee driver subsystem 2018-08-26 16:27:32 -07:00
thermal thermal: stm32: Fix stm_thermal_read_factory_settings 2018-12-10 20:15:28 -08:00
thunderbolt thunderbolt: Prevent root port runtime suspend during NVM upgrade 2018-11-26 20:38:49 +01:00
tty vt: invoke notifier on screen size change 2019-01-31 08:15:44 +01:00
uio uio_hv_generic: set callbacks on open 2018-12-11 14:23:17 +01:00
usb usb: dwc3: gadget: Clear req->needs_extra_trb flag on cleanup 2019-01-31 08:15:45 +01:00
uwb uwb: hwa-rc: fix memory leak at probe 2018-07-06 16:36:19 +02:00
vfio vfio/type1: Fix unmap overflow off-by-one 2019-01-16 22:03:24 +01:00
vhost vhost: fix OOB in get_rx_bufs() 2019-02-06 17:27:37 +01:00
video vgacon: unconfuse vc_origin when using soft scrollback 2019-01-31 08:15:40 +01:00
virt treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
virtio virtio-balloon: tweak config_changed implementation 2019-01-22 21:09:52 +01:00
visorbus drivers: visorbus: move driver out of staging 2017-12-08 16:37:50 +01:00
vlynq drivers/vlynq/vlynq.c: fix another resource size off by 1 error 2014-01-23 16:36:55 -08:00
vme vme: remove unneeded kfree 2018-09-14 15:25:57 +02:00
w1 w1: IAD Register is yet readable trough iad sys file. Fix snprintf (%u for unsigned, count for max size). 2018-10-15 20:50:32 +02:00
watchdog watchdog: ts4800: release syscon device node in ts4800_wdt_probe() 2018-10-22 10:16:28 +02:00
xen xen: Fix x86 sched_clock() interface for xen 2019-01-22 21:09:51 +01:00
zorro - Introduce arithmetic overflow test helper functions (Rasmus) 2018-06-06 17:27:14 -07:00
Kconfig gnss: add GNSS receiver subsystem 2018-06-28 20:29:47 +09:00
Makefile Char/Misc driver patches for 4.19-rc1 2018-08-18 11:04:51 -07:00