android_kernel_motorola_sm6375/drivers
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Ilya Dryomov 46c0fa486b rbd: don't assume RBD_LOCK_STATE_LOCKED for exclusive mappings
commit 2237ceb71f89837ac47c5dce2aaa2c2b3a337a3c upstream.

Every time a watch is reestablished after getting lost, we need to
update the cookie which involves quiescing exclusive lock.  For this,
we transition from RBD_LOCK_STATE_LOCKED to RBD_LOCK_STATE_QUIESCING
roughly for the duration of rbd_reacquire_lock() call.  If the mapping
is exclusive and I/O happens to arrive in this time window, it's failed
with EROFS (later translated to EIO) based on the wrong assumption in
rbd_img_exclusive_lock() -- "lock got released?" check there stopped
making sense with commit a2b1da0979 ("rbd: lock should be quiesced on
reacquire").

To make it worse, any such I/O is added to the acquiring list before
EROFS is returned and this sets up for violating rbd_lock_del_request()
precondition that the request is either on the running list or not on
any list at all -- see commit ded080c86b3f ("rbd: don't move requests
to the running list on errors").  rbd_lock_del_request() ends up
processing these requests as if they were on the running list which
screws up quiescing_wait completion counter and ultimately leads to

    rbd_assert(!completion_done(&rbd_dev->quiescing_wait));

being triggered on the next watch error.

Cc: stable@vger.kernel.org # 06ef84c4e9c4: rbd: rename RBD_LOCK_STATE_RELEASING and releasing_wait
Cc: stable@vger.kernel.org
Fixes: 637cd06053 ("rbd: new exclusive lock wait/wake code")
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Dongsheng Yang <dongsheng.yang@easystack.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-19 05:33:40 +02:00
..
accessibility
acpi ACPI: processor_idle: Fix invalid comparison with insertion sort for latency 2024-07-27 10:38:32 +02:00
amba amba: bus: fix refcount leak 2023-09-23 10:59:52 +02:00
android binder: fix hang of unregistered readers 2024-08-19 05:33:37 +02:00
ata ata: libata-core: Fix double free on error 2024-07-05 09:08:31 +02:00
atm atm: idt77252: fix a memleak in open_card_ubr0 2024-02-23 08:25:06 +01:00
auxdisplay
base drivers: core: synchronize really_probe() and dev_uevent() 2024-07-05 09:08:18 +02:00
bcma
block rbd: don't assume RBD_LOCK_STATE_LOCKED for exclusive mappings 2024-08-19 05:33:40 +02:00
bluetooth Bluetooth: ath3k: Fix multiple issues reported by checkpatch.pl 2024-07-05 09:08:21 +02:00
bus bus: tegra-aconnect: Update dependency to ARCH_TEGRA 2024-03-26 18:22:15 -04:00
cdrom
char hwrng: amd - Convert PCIBIOS_* return codes to errnos 2024-08-19 05:33:37 +02:00
clk clk: davinci: da8xx-cfgchip: Initialize clk_init_data before use 2024-08-19 05:33:37 +02:00
clocksource clocksource/drivers/timer-atmel-tcb: Fix initialization on SAM9 hardware 2023-11-28 16:50:13 +00:00
connector
counter
cpufreq cpufreq: exit() callback is optional 2024-06-16 13:28:34 +02:00
cpuidle
crypto crypto: qat - Fix ADF_DEV_RESET_SYNC memory leak 2024-06-16 13:28:51 +02:00
dax
dca
devfreq PM / devfreq: Fix leak in devfreq_dev_release() 2023-09-23 10:59:54 +02:00
dio
dma dmaengine: ioatdma: Fix missing kmem_cache_destroy() 2024-07-05 09:08:23 +02:00
dma-buf dma-buf/sw-sync: don't enable IRQ from sync_print_obj() 2024-06-16 13:28:47 +02:00
edac EDAC, i10nm: make skx_common.o a separate module 2024-08-19 05:33:25 +02:00
eisa
extcon extcon: max8997: select IRQ_DOMAIN instead of depending on it 2024-06-16 13:28:43 +02:00
firewire firewire: nosy: ensure user_length is taken into account when fetching packet contents 2024-05-17 11:43:54 +02:00
firmware firmware: turris-mox-rwtm: Initialize completion before mailbox 2024-08-19 05:33:28 +02:00
fpga
fsi fsi: master-ast-cf: Add MODULE_FIRMWARE macro 2023-09-23 10:59:37 +02:00
gnss
gpio gpio: davinci: Validate the obtained number of IRQs 2024-07-05 09:08:28 +02:00
gpu drm/panfrost: Mark simple_ondemand governor as softdep 2024-08-19 05:33:39 +02:00
greybus greybus: Fix use-after-free bug in gb_interface_release due to race condition. 2024-07-05 09:08:20 +02:00
hid HID: logitech-dj: Fix memory leak in logi_dj_recv_switch_to_dj_mode() 2024-07-05 09:08:16 +02:00
hsi
hv hv_utils: drain the timesync packets on onchannelcallback 2024-07-05 09:08:20 +02:00
hwmon hwmon: (max6697) Fix swapped temp{1,8} critical alarms 2024-08-19 05:33:26 +02:00
hwspinlock
hwtracing intel_th: pci: Add Lunar Lake support 2024-07-05 09:08:19 +02:00
i2c i2c: rcar: bring hardware to known state when probing 2024-07-18 11:40:56 +02:00
i3c i3c: master: cdns: Update maximum prescaler value for i2c clock 2024-02-23 08:25:02 +01:00
ide
idle
iio iio: chemical: bme680: Fix sensor data read operation 2024-07-05 09:08:29 +02:00
infiniband RDMA/iwcm: Fix a use-after-free related to destroying CM IDs 2024-08-19 05:33:39 +02:00
input Input: elan_i2c - do not leave interrupt disabled on suspend failure 2024-08-19 05:33:33 +02:00
interconnect interconnect: Treat xlate() returning NULL node as an error 2024-01-08 11:29:45 +01:00
iommu iommu/amd: Fix sysfs leak in iommu init 2024-07-05 09:08:16 +02:00
ipack
irqchip irqchip/alpine-msi: Fix off-by-one in allocation error path 2024-06-16 13:28:34 +02:00
isdn
leds leds: ss4200: Convert PCIBIOS_* return codes to errnos 2024-08-19 05:33:37 +02:00
lightnvm
macintosh macintosh/therm_windtunnel: fix module unload. 2024-08-19 05:33:34 +02:00
mailbox
mcb mcb: fix error handling for different scenarios when parsing 2023-11-28 16:50:19 +00:00
md md/raid5: fix deadlock that raid5d() wait for itself to clear MD_SB_CHANGE_PENDING 2024-06-16 13:28:50 +02:00
media media: venus: fix use after free in vdec_close 2024-08-19 05:33:35 +02:00
memory
memstick
message
mfd mfd: omap-usb-tll: Use struct_size to allocate tll 2024-08-19 05:33:32 +02:00
misc mei: demote client disconnect warning on suspend to debug 2024-07-27 10:38:29 +02:00
mmc mmc: sdhci: Do not lock spinlock around mmc_gpio_get_ro() 2024-07-05 09:08:29 +02:00
mtd ubi: eba: properly rollback inside self_check_eba 2024-08-19 05:33:38 +02:00
mux
net wifi: mwifiex: Fix interface type change 2024-08-19 05:33:36 +02:00
nfc NFC: trf7970a: disable all regulators on removal 2024-05-02 16:18:33 +02:00
ntb ntb: Fix calculation ntb_transport_tx_free_entry() 2023-09-23 10:59:55 +02:00
nubus
nvdimm nd_btt: Make BTT lanes preemptible 2023-11-20 10:30:12 +01:00
nvme nvme-multipath: find NUMA path only for online numa-node 2024-07-18 11:40:52 +02:00
nvmem nvmem: meson-efuse: Fix return value of nvmem callbacks 2024-07-18 11:40:55 +02:00
of of: gpio unittest kfree() wrong object 2024-02-23 08:25:15 +01:00
opp OPP: Fix passing 0 to PTR_ERR in _opp_attach_genpd() 2023-09-23 10:59:40 +02:00
oprofile
parisc parisc: iosapic.c: Fix sparse warnings 2023-10-10 21:46:39 +02:00
parport parport: parport_serial: Add Brainboxes device IDs and geometry 2024-01-25 14:34:21 -08:00
pci PCI: hv: Return zero, not garbage, when reading PCI_INTERRUPT_PIN 2024-08-19 05:33:37 +02:00
pcmcia pcmcia: ds: fix possible name leak in error path in pcmcia_device_add() 2023-11-20 10:30:14 +01:00
perf perf/smmuv3: Enable HiSilicon Erratum 162001900 quirk for HIP08/09 2023-09-23 11:00:03 +02:00
phy phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP 2024-02-23 08:25:06 +01:00
pinctrl pinctrl: freescale: mxs: Fix refcount of child 2024-08-19 05:33:34 +02:00
platform platform: mips: cpu_hwmon: Disable driver on unsupported hardware 2024-08-19 05:33:39 +02:00
pnp PNP: ACPI: fix fortify warning 2024-02-23 08:24:54 +01:00
power power: rt9455: hide unused rt9455_boost_voltage_values 2024-05-17 11:43:48 +02:00
powercap
pps
ps3
ptp ptp: Fix error message on failed pin verification 2024-07-05 09:08:11 +02:00
pwm pwm: stm32: Always do lazy disabling 2024-08-19 05:33:26 +02:00
rapidio
ras
regulator regulator: core: Fix modpost error "regulator_get_regmap" undefined 2024-07-05 09:08:23 +02:00
remoteproc
reset reset: hisilicon: hi6220: fix Wvoid-pointer-to-enum-cast warning 2024-01-25 14:34:20 -08:00
rpmsg rpmsg: virtio: Free driver_override when rpmsg_remove() 2024-02-23 08:24:48 +01:00
rtc rtc: isl1208: Fix return value of nvmem callbacks 2024-08-19 05:33:39 +02:00
s390 s390/sclp: Fix sclp_init() cleanup on failure 2024-07-27 10:38:31 +02:00
sbus
scsi scsi: qla2xxx: validate nvme_local_port correctly 2024-08-19 05:33:38 +02:00
sfi
sh
siox
slimbus slimbus: core: Remove usage of the deprecated ida_simple_xx() API 2024-04-13 12:51:26 +02:00
soc soc: ti: wkup_m3_ipc: Send NULL dummy message instead of pointer message 2024-07-05 09:08:28 +02:00
soundwire soundwire: cadence: fix invalid PDI offset 2024-06-16 13:28:41 +02:00
spi spi: imx: Don't expect DMA for i.MX{25,35,50,51,53} cspi devices 2024-07-27 10:38:32 +02:00
spmi
ssb
staging wifi: wilc1000: fix ies_len type in connect path 2024-07-18 11:40:50 +02:00
target scsi: target: Fix SELinux error when systemd-modules loads the target module 2024-05-17 11:43:51 +02:00
tc
tee
thermal thermal: core: prevent potential string overflow 2023-11-20 10:30:09 +01:00
thunderbolt
tty tty: mcf: MCF54418 has 10 UARTS 2024-07-05 09:08:30 +02:00
uio uio: Fix use-after-free in uio_open 2024-01-25 14:34:21 -08:00
usb USB: move snd_usb_pipe_sanity_check into the USB core 2024-08-19 05:33:30 +02:00
vfio vfio/platform: Create persistent IRQ handlers 2024-04-13 12:51:34 +02:00
vhost vhost: Add smp_rmb() in vhost_vq_avail_empty() 2024-05-02 16:18:29 +02:00
video fbdev: savage: Handle err return when savagefb_check_var failed 2024-06-16 13:28:50 +02:00
virt
virtio virtio: delete vq in vp_find_vqs_msix() when request_irq() fails 2024-06-16 13:28:46 +02:00
visorbus
vlynq
vme
w1
watchdog watchdog: stm32_iwdg: initialize default timeout 2024-03-26 18:22:24 -04:00
xen xen/events: close evtchn after mapping cleanup 2024-04-13 12:51:29 +02:00
zorro
Kconfig
Makefile