linux/drivers
Logan Gunthorpe b368856aab md: Ensure resync is reported after it starts
The 07layouts test in mdadm fails on some systems. The failure
presents itself as the backup file not being removed before the next
layout is grown into:

  mdadm: /dev/md0: cannot create backup file /tmp/md-test-backup:
      File exists

This is because the background mdadm process, which is responsible for
cleaning up this backup file gets into an infinite loop waiting for
the reshape to start. mdadm checks the mdstat file if a reshape is
going and, if it is not, it waits for an event on the file or times
out in 5 seconds. On faster machines, the reshape may complete before
the 5 seconds times out, and thus the background mdadm process loops
waiting for a reshape to start that has already occurred.

mdadm reads the mdstat file to start, but mdstat does not report that the
reshape has begun, even though it has indeed begun. So the mdstat_wait()
call (in mdadm) which polls on the mdstat file won't ever return until
timing out.

The reason mdstat reports the reshape has started is due to an issue
in status_resync(). recovery_active is subtracted from curr_resync which
will result in a value of zero for the first chunk of reshaped data, and
the resulting read will report no reshape in progress.

To fix this, if "resync - recovery_active" is an overloaded value, force
the value to be MD_RESYNC_ACTIVE so the code reports a resync in progress.

Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Song Liu <song@kernel.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-08-02 17:14:40 -06:00
..
accessibility Revert "speakup: Generate speakupmap.h automatically" 2022-05-20 21:07:05 +02:00
acpi ACPI updates for 5.20-rc1 2022-08-02 11:12:25 -07:00
amba ARM: 9207/1: amba: fix refcount underflow if amba_device_add() fails 2022-07-14 13:17:48 +01:00
android fix for breakage in #work.fd this window 2022-06-05 17:14:03 -07:00
ata ARM: SoC drivers for 6.0 2022-08-02 08:10:10 -07:00
atm
auxdisplay
base Power management updates for 5.20-rc1 2022-08-02 11:17:00 -07:00
bcma bcma: gpio: Switch to use fwnode instead of of_node 2022-05-09 14:41:43 +03:00
block drbd: bm_page_async_io: fix spurious bitmap "IO error" on large volumes 2022-08-02 17:14:31 -06:00
bluetooth Bluetooth: btmtksdio: fix the reset takes too long 2022-05-13 13:19:01 +02:00
bus Merge branch 'acpi-bus' 2022-07-29 19:58:52 +02:00
cdrom block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
char ARM: SoC drivers for 6.0 2022-08-02 08:10:10 -07:00
clk ARM: SoC drivers for 6.0 2022-08-02 08:10:10 -07:00
clocksource - Add the missing DT bindings for the MTU nomadik timer (Linus 2022-07-28 12:33:34 +02:00
comedi comedi: vmk80xx: fix expression for tx buffer size 2022-06-10 15:21:23 +02:00
connector
counter
cpufreq Merge branches 'pm-core', 'pm-sleep', 'powercap', 'pm-domains' and 'pm-em' 2022-07-29 19:33:13 +02:00
cpuidle Power management updates for 5.20-rc1 2022-08-02 11:17:00 -07:00
crypto crypto: s390 - do not depend on CRYPTO_HW for SIMD implementations 2022-07-06 20:04:06 -07:00
cxl cxl/mbox: Fix missing variable payload checks in cmd size validation 2022-06-28 22:03:18 -07:00
dax dax: add .recovery_write dax_operation 2022-05-16 13:37:59 -07:00
dca
devfreq PM / devfreq: tegra30: Add error message for devm_devfreq_add_device() 2022-07-15 11:40:08 +09:00
dio drivers: dio: add missing iounmap() in dio_init() 2022-05-19 18:56:51 +02:00
dma dmaengine: lgm: Fix an error handling path in intel_ldma_probe() 2022-07-06 10:53:25 +05:30
dma-buf Three mode setting fixes for fsl-ldb, a fbdev removal use-after-free fix, 2022-07-12 10:44:40 +10:00
edac EDAC/ghes: Set the DIMM label unconditionally 2022-07-27 10:42:52 +02:00
eisa
extcon extcon: Modify extcon device to be created after driver data is set 2022-05-13 17:03:41 +09:00
firewire firewire: convert sysfs sprintf/snprintf family to sysfs_emit 2022-06-17 10:43:20 +02:00
firmware Power management updates for 5.20-rc1 2022-08-02 11:17:00 -07:00
fpga fpga: dfl: Allow Port to be linked to FME's DFL 2022-05-10 16:05:38 +08:00
fsi
gnss
gpio Updates for interrupt core and drivers: 2022-08-01 12:48:15 -07:00
gpu drm fixes for 5.19 final (part 2) 2022-07-29 13:25:31 -07:00
greybus
hid HID: hyperv: Correctly access fields declared as __le16 2022-06-08 12:28:13 +00:00
hsi
hte hte: Uninitialized variable in hte_ts_get() 2022-05-20 15:54:41 +02:00
hv Drivers: hv: vmbus: Release cpu lock in error case 2022-06-10 08:41:28 +00:00
hwmon hwmon updates for v5.20 2022-08-02 11:07:04 -07:00
hwspinlock
hwtracing coresight: cpu-debug: Replace mutex with mutex_trylock on panic notifier 2022-05-09 16:03:24 +01:00
i2c ARM: SoC drivers for 6.0 2022-08-02 08:10:10 -07:00
i3c i3c: master: svc: fix returnvar.cocci warning 2022-05-17 22:34:42 +02:00
idle Power management updates for 5.20-rc1 2022-08-02 11:17:00 -07:00
iio 1st set of IIO fixes for the 5.19 cycle. 2022-06-20 09:49:52 +02:00
infiniband for-5.20/block-2022-07-29 2022-08-02 13:46:35 -07:00
input Input updates for v5.19-rc6 2022-07-17 07:52:46 -07:00
interconnect Char / Misc / Other smaller driver subsystem updates for 5.19-rc1 2022-06-03 11:36:34 -07:00
iommu Updates for interrupt core and drivers: 2022-08-01 12:48:15 -07:00
ipack
irqchip ARM: new SoC support for 6.0 2022-08-02 08:29:18 -07:00
isdn
leds ARM: multiplatform changes, part 2 2022-06-02 15:23:54 -07:00
macintosh macintosh: via-pmu and via-cuda need RTC_LIB 2022-05-22 15:58:30 +10:00
mailbox mailbox: qcom-ipcc: Fix -Wunused-function with CONFIG_PM_SLEEP=n 2022-05-24 08:08:24 -05:00
mcb
md md: Ensure resync is reported after it starts 2022-08-02 17:14:40 -06:00
media USB / Thunderbolt changes for 5.19-rc1 2022-06-03 11:17:49 -07:00
memory memory: tegra: Changes for v5.20-rc1 2022-07-12 22:53:08 +02:00
memstick block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
message
mfd ACPI updates for 5.20-rc1 2022-08-02 11:12:25 -07:00
misc lkdtm: Disable return thunks in rodata.c 2022-07-20 19:24:53 +02:00
mmc for-5.20/block-2022-07-29 2022-08-02 13:46:35 -07:00
most
mtd for-5.20/block-2022-07-29 2022-08-02 13:46:35 -07:00
mux
net stmmac: dwmac-mediatek: fix resource leak in probe 2022-07-28 10:43:04 -07:00
nfc NFC: nxp-nci: don't print header length mismatch on i2c error 2022-06-29 14:05:00 +01:00
ntb
nubus
nvdimm for-5.20/block-2022-07-29 2022-08-02 13:46:35 -07:00
nvme for-5.20/block-2022-07-29 2022-08-02 13:46:35 -07:00
nvmem nvmem: sfp: Add support for TA 2.1 devices 2022-05-09 15:46:29 +02:00
of x86/kexec: Carry forward IMA measurement log on kexec 2022-07-01 15:22:16 +02:00
opp PM: EM: convert power field to micro-Watts precision and align drivers 2022-07-15 19:17:30 +02:00
parisc genirq: Add and use an irq_data_update_affinity helper 2022-07-07 09:38:04 +01:00
parport
pci PCI: hv: Take a const cpumask in hv_compose_msi_req_get_cpu() 2022-07-08 08:44:15 +01:00
pcmcia ARM: multiplatform changes, part 2 2022-06-02 15:23:54 -07:00
peci
perf drivers/perf: arm_spe: Fix consistency of SYS_PMSCR_EL1.CX 2022-07-19 18:50:09 +01:00
phy phy: brcm-sata: bcmbca: Replace ARCH_BCM_63XX with ARCH_BCMBCA 2022-07-08 14:09:58 -07:00
pinctrl Updates for interrupt core and drivers: 2022-08-01 12:48:15 -07:00
platform Merge branch 'acpi-bus' 2022-07-29 19:58:52 +02:00
pnp
power power: supply: core: Fix boundary conditions in interpolation 2022-06-09 21:08:38 +02:00
powercap Power management updates for 5.20-rc1 2022-08-02 11:17:00 -07:00
pps
ps3
ptp ptp: ocp: Select CRC16 in the Kconfig. 2022-07-27 18:11:34 -07:00
pwm pwm: lpc18xx: Fix period handling 2022-07-29 13:41:18 +02:00
rapidio
ras
regulator regulator: Consumer load management improvements 2022-07-28 00:01:30 +01:00
remoteproc remoteproc: imx_rproc: Support i.MX93 2022-05-09 09:29:25 -06:00
reset Merge branch 'nuvoton/newsoc' into arm/newsoc 2022-07-19 15:42:00 +02:00
rpmsg Driver core changes for 5.19-rc1 2022-06-03 11:48:47 -07:00
rtc ARM: multiplatform changes, part 2 2022-06-02 15:23:54 -07:00
s390 for-5.20/block-2022-07-29 2022-08-02 13:46:35 -07:00
sbus
scsi for-5.20/block-2022-07-29 2022-08-02 13:46:35 -07:00
sh genirq: Add and use an irq_data_update_affinity helper 2022-07-07 09:38:04 +01:00
siox
slimbus Driver core changes for 5.19-rc1 2022-06-03 11:48:47 -07:00
soc ARM: SoC drivers for 6.0 2022-08-02 08:10:10 -07:00
soundwire soundwire: Use acpi_dev_for_each_child() 2022-06-23 20:53:06 +02:00
spi spi: Updates for v5.20 2022-08-02 10:55:04 -07:00
spmi
ssb ssb: remove unreachable code 2022-05-11 08:29:11 +03:00
staging staging/wlan-ng: get the correct struct hfa384x in work callback 2022-07-01 09:58:58 +02:00
target for-5.20/block-2022-07-29 2022-08-02 13:46:35 -07:00
tc
tee tee: tee_get_drvdata(): fix description of return value 2022-07-08 10:51:24 +02:00
thermal Thermal control updates for 5.20-rc1 2022-08-02 11:27:53 -07:00
thunderbolt thunderbolt: ACPI: Replace tb_acpi_find_port() with acpi_find_child_by_adr() 2022-06-20 20:32:26 +02:00
tty ARM: SoC drivers for 6.0 2022-08-02 08:10:10 -07:00
ufs for-5.20/block-2022-07-29 2022-08-02 13:46:35 -07:00
uio uio: dfl: add HSSI subsystem feature id 2022-05-09 15:42:57 +02:00
usb Merge branch 'acpi-bus' 2022-07-29 19:58:52 +02:00
vdpa vduse: Tie vduse mgmtdev and its device 2022-06-24 02:49:48 -04:00
vfio vfio: Move IOMMU_CAP_CACHE_COHERENCY test to after we know we have a group 2022-07-05 16:06:50 -06:00
vhost vhost-vdpa: call vhost_vdpa_cleanup during the release 2022-06-27 08:05:35 -04:00
video fbcon: Use fbcon_info_from_console() in fbcon_modechange_possible() 2022-07-07 10:52:35 +02:00
virt virt: sev-guest: Pass the appropriate argument type to iounmap() 2022-07-19 22:26:02 +02:00
virtio virtio_ring: make vring_create_virtqueue_split prettier 2022-06-27 08:05:35 -04:00
vlynq
vme
w1
watchdog watchdog: gxp: Add missing MODULE_LICENSE 2022-06-09 12:20:34 +02:00
xen Updates for interrupt core and drivers: 2022-08-01 12:48:15 -07:00
zorro
Kconfig SCSI misc on 20220604 2022-06-05 09:25:12 -07:00
Makefile SCSI misc on 20220604 2022-06-05 09:25:12 -07:00