linux/drivers
Ilya Dryomov 92e7c8dcfa rbd: don't assume rbd_is_lock_owner() for exclusive mappings
commit 3ceccb14f5 upstream.

Expanding on the previous commit, assuming that rbd_is_lock_owner()
always returns true (i.e. that we are either in RBD_LOCK_STATE_LOCKED
or RBD_LOCK_STATE_QUIESCING) if the mapping is exclusive is wrong too.
In case ceph_cls_set_cookie() fails, the lock would be temporarily
released even if the mapping is exclusive, meaning that we can end up
even in RBD_LOCK_STATE_UNLOCKED.

IOW, exclusive mappings are really "just" about disabling automatic
lock transitions (as documented in the man page), not about grabbing
the lock and holding on to it whatever it takes.

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>
History 2024-08-03 08:49:43 +02:00
..
accessibility speakup: Fix sizeof() vs ARRAY_SIZE() bug 2024-06-12 11:02:55 +02:00
acpi ACPI: EC: Avoid returning AE_OK on errors in address space handler 2024-07-25 09:49:08 +02:00
amba amba: bus: fix refcount leak 2023-09-13 09:42:56 +02:00
android binder: fix hang of unregistered readers 2024-08-03 08:49:37 +02:00
ata ata: libata-scsi: Honor the D_SENSE bit for CK_COND=1 and no error 2024-08-03 08:49:32 +02:00
atm atm: idt77252: fix a memleak in open_card_ubr0 2024-02-16 19:06:26 +01:00
auxdisplay auxdisplay: hd44780: move cursor home after clear display command 2023-12-08 08:51:16 +01:00
base devres: Fix memory leakage caused by driver API devm_free_percpu() 2024-08-03 08:49:39 +02:00
bcma Interrupt subsystem updates: 2022-10-12 10:23:24 -07:00
block rbd: don't assume rbd_is_lock_owner() for exclusive mappings 2024-08-03 08:49:43 +02:00
bluetooth Bluetooth: qca: Fix BT enable failure again for QCA6390 after warm reboot 2024-07-11 12:47:14 +02:00
bus bus: mhi: host: Add MHI_PM_SYS_ERR_FAIL state 2024-04-13 13:05:16 +02:00
cdrom cdrom: rearrange last_media_change check to avoid unintentional overflow 2024-07-11 12:47:10 +02:00
char hwrng: amd - Convert PCIBIOS_* return codes to errnos 2024-08-03 08:49:36 +02:00
clk clk: davinci: da8xx-cfgchip: Initialize clk_init_data before use 2024-08-03 08:49:38 +02:00
clocksource clocksource/drivers/arm_global_timer: Fix maximum prescaler value 2024-04-03 15:19:44 +02:00
comedi comedi: vmk80xx: fix incomplete endpoint checking 2024-04-27 17:07:14 +02:00
connector connector/cn_proc: Use task_is_in_init_pid_ns() 2022-01-26 18:57:09 -08:00
counter counter: ti-eqep: enable clock at probe 2024-07-05 09:31:53 +02:00
cpufreq cpufreq: ti-cpufreq: Handle deferred probe with dev_err_probe() 2024-08-03 08:48:58 +02:00
cpuidle cpuidle: Avoid potential overflow in integer multiplication 2024-04-13 13:04:54 +02:00
crypto crypto: qat - extend scope of lock in adf_cfg_add_key_value_param() 2024-08-03 08:49:21 +02:00
cxl cxl/pci: Fix disabling memory if DVSEC CXL Range does not match a CFMWS window 2024-03-01 13:26:31 +01:00
dax dax/kmem: Pass valid argument to memory_group_register_static 2023-07-19 16:21:43 +02:00
dca dca: Use PTR_ERR_OR_ZERO() to simplify code 2020-05-15 16:25:20 +02:00
devfreq PM / devfreq: Synchronize devfreq_monitor_[start/stop] 2024-02-05 20:12:47 +00:00
dio drivers: dio: fix possible memory leak in dio_init() 2022-12-31 13:32:38 +01:00
dma dmaengine: ioatdma: Fix missing kmem_cache_destroy() 2024-06-27 13:46:20 +02:00
dma-buf dma-buf/sw-sync: don't enable IRQ from sync_print_obj() 2024-06-12 11:03:55 +02:00
edac EDAC, i10nm: make skx_common.o a separate module 2024-08-03 08:48:52 +02:00
eisa EISA: use DEVICE_ATTR_RO() helper macro 2021-06-04 15:28:34 +02:00
extcon extcon: max8997: select IRQ_DOMAIN instead of depending on it 2024-06-12 11:03:41 +02:00
firewire firewire: nosy: ensure user_length is taken into account when fetching packet contents 2024-05-17 11:56:16 +02:00
firmware x86/efistub: Revert to heap allocated boot_params for PE entrypoint 2024-08-03 08:49:30 +02:00
fpga fpga: region: add owner module and take its refcount 2024-06-12 11:03:39 +02:00
fsi fsi: aspeed: Reset master errors after CFAM reset 2023-09-13 09:42:54 +02:00
gnss gnss: replace ida_simple API 2022-06-21 09:30:36 +02:00
gpio gpio: pca953x: fix pca953x_irq_bus_sync_unlock race 2024-07-25 09:49:15 +02:00
gpu drm/i915/dp: Reset intel_dp->link_trained before retraining the link 2024-08-03 08:49:42 +02:00
greybus greybus: Fix use-after-free bug in gb_interface_release due to race condition. 2024-06-21 14:36:00 +02:00
hid HID: Ignore battery for ELAN touchscreens 2F2C and 4116 2024-07-25 09:49:11 +02:00
hsi HSI: omap_ssi_core: Fix error handling in ssi_init() 2022-12-31 13:32:45 +01:00
hte hte: tegra: Fix missing error code in tegra_hte_test_probe() 2023-11-20 11:51:58 +01:00
hv Drivers: hv: vmbus: Don't free ring buffers that couldn't be re-encrypted 2024-05-17 11:56:08 +02:00
hwmon hwmon: (max6697) Fix swapped temp{1,8} critical alarms 2024-08-03 08:48:56 +02:00
hwspinlock hwspinlock: qcom: add missing regmap config for SFPB MMIO implementation 2023-09-19 12:28:05 +02:00
hwtracing coresight: Fix ref leak when of_coresight_parse_endpoint() fails 2024-08-03 08:49:18 +02:00
i2c i2c: rcar: fix error code in probe() 2024-07-18 13:18:44 +02:00
i3c i3c: master: svc: fix invalidate IBI type and miss call client IBI handler 2024-06-16 13:41:41 +02:00
idle intel_idle: add Emerald Rapids Xeon support 2023-10-10 22:00:44 +02:00
iio iio: frequency: adrf6780: rm clk provider include 2024-08-03 08:49:17 +02:00
infiniband RDMA/iwcm: Fix a use-after-free related to destroying CM IDs 2024-08-03 08:49:43 +02:00
input Input: elan_i2c - do not leave interrupt disabled on suspend failure 2024-08-03 08:49:21 +02:00
interconnect interconnect: qcom: qcm2290: Fix mas_snoc_bimc RPM master ID 2024-08-03 08:49:19 +02:00
iommu iommu/vt-d: Fix identity map bounds in si_domain_init() 2024-08-03 08:49:23 +02:00
ipack Char/Misc and other driver changes for 6.1-rc1 2022-10-08 08:56:37 -07:00
irqchip irqchip/imx-irqsteer: Handle runtime power management correctly 2024-08-03 08:49:40 +02:00
isdn mISDN: Update parameter type of dsp_cmx_send() 2023-08-16 18:27:26 +02:00
leds leds: mt6360: Fix memory leak in mt6360_init_isnk_properties() 2024-08-03 08:49:35 +02:00
macintosh macintosh/therm_windtunnel: fix module unload. 2024-08-03 08:49:22 +02:00
mailbox mailbox: arm_mhuv2: Fix a bug for mhuv2_sender_interrupt 2024-02-05 20:12:58 +00:00
mcb mcb: fix error handling for different scenarios when parsing 2023-11-28 17:07:13 +00:00
md dm-verity: fix dm_is_verity_target() when dm-verity is builtin 2024-08-03 08:49:43 +02:00
media media: uvcvideo: Fix integer overflow calculating timestamp 2024-08-03 08:49:35 +02:00
memory memory: fsl_ifc: Make FSL_IFC config visible and selectable 2024-08-03 08:48:58 +02:00
memstick memstick r592: make memstick_debug_get_tpc_name() static 2023-07-19 16:21:08 +02:00
message scsi: message: mptlan: Fix use after free bug in mptlan_remove() due to race condition 2023-05-24 17:32:37 +01:00
mfd mfd: omap-usb-tll: Use struct_size to allocate tll 2024-08-03 08:49:15 +02:00
misc mei: demote client disconnect warning on suspend to debug 2024-07-25 09:49:12 +02:00
mmc mmc: sdhci: Do not lock spinlock around mmc_gpio_get_ro() 2024-07-05 09:31:53 +02:00
most most: usb: replace snprintf in show functions with sysfs_emit 2021-11-26 17:03:47 +01:00
mtd ubi: eba: properly rollback inside self_check_eba 2024-08-03 08:49:38 +02:00
mux mux: Fix struct mux_state kernel-doc comment 2022-02-04 15:47:12 +01:00
net ice: Add a per-VF limit on number of FDIR filters 2024-08-03 08:49:39 +02:00
nfc nfc/nci: Add the inconsistency check between the input data length and count 2024-07-11 12:47:18 +02:00
ntb NTB: fix possible name leak in ntb_register_device() 2024-03-26 18:20:49 -04:00
nubus nubus: Partially revert proc_create_single_data() conversion 2023-07-05 18:27:37 +01:00
nvdimm nd_btt: Make BTT lanes preemptible 2023-11-20 11:52:05 +01:00
nvme nvmet-auth: fix nvmet_auth hash error handling 2024-08-03 08:48:55 +02:00
nvmem nvmem: core: only change name to fram for current attribute 2024-07-18 13:18:40 +02:00
of of/irq: Disable "interrupt-map" parsing for PASEMI Nemo 2024-07-25 09:49:20 +02:00
opp OPP: ti: Fix ti_opp_supply_probe wrong return values 2024-08-03 08:48:58 +02:00
parisc parisc/power: Fix power soft-off button emulation on qemu 2024-01-31 16:16:59 -08:00
parport dev/parport: fix the array out-of-bounds risk 2024-08-03 08:49:37 +02:00
pci PCI: loongson: Enable MSI in LS7A Root Complex 2024-08-03 08:49:37 +02:00
pcmcia pcmcia: ds: fix possible name leak in error path in pcmcia_device_add() 2023-11-20 11:52:13 +01:00
peci peci: cpu: Fix use-after-free in adev_release() 2022-08-15 20:31:35 +02:00
perf drivers/perf: riscv: Reset the counter to hpmevent mapping while starting cpus 2024-07-25 09:49:18 +02:00
phy phy: ti: tusb1210: Resolve charger-det crash if charger psy is unregistered 2024-05-02 16:29:31 +02:00
pinctrl pinctrl: renesas: r8a779g0: Fix TPU suffixes 2024-08-03 08:49:28 +02:00
platform platform: mips: cpu_hwmon: Disable driver on unsupported hardware 2024-08-03 08:49:43 +02:00
pnp PNP: ACPI: fix fortify warning 2024-02-05 20:12:47 +00:00
power power: supply: cros_usbpd: provide ID table for avoiding fallback match 2024-06-27 13:46:17 +02:00
powercap powercap: dtpm_cpu: Fix error check against freq_qos_add_request() 2024-03-26 18:20:36 -04:00
pps pps: generators: pps_gen_parport: Switch to use module_parport_driver() 2022-03-18 14:01:19 +01:00
ps3 powerpc/ps3: Warn on PS3 device errors 2021-06-10 21:44:58 +10:00
ptp ptp: fix integer overflow in max_vclocks_store 2024-06-27 13:46:19 +02:00
pwm pwm: atmel-tcb: Fix race condition and convert to guards 2024-08-03 08:48:55 +02:00
rapidio rapidio: devices: fix missing put_device in mport_cdev_open 2022-12-31 13:32:00 +01:00
ras RAS/CEC: Reduce offline page threshold for Intel systems 2022-08-22 19:30:02 +02:00
regulator regulator: bd71815: fix ramp values 2024-06-27 13:46:21 +02:00
remoteproc remoteproc: k3-r5: Jump to error handling labels in start/stop errors 2024-06-21 14:35:59 +02:00
reset reset: hisilicon: hi6220: fix Wvoid-pointer-to-enum-cast warning 2024-01-20 11:50:07 +01:00
rpmsg rpmsg: virtio: Free driver_override when rpmsg_remove() 2024-01-31 16:16:59 -08:00
rtc rtc: isl1208: Fix return value of nvmem callbacks 2024-08-03 08:49:42 +02:00
s390 s390/dasd: fix error checks in dasd_copy_pair_store() 2024-08-03 08:49:29 +02:00
sbus module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
scsi scsi: qla2xxx: validate nvme_local_port correctly 2024-08-03 08:49:41 +02:00
sh genirq: Add and use an irq_data_update_affinity helper 2022-07-07 09:38:04 +01:00
siox siox: fix possible memory leak in siox_device_add() 2022-11-09 15:40:14 +01:00
slimbus slimbus: qcom-ngd-ctrl: Add timeout for wait operation 2024-05-17 11:56:20 +02:00
soc drivers: soc: xilinx: check return status of get_api_version() 2024-08-03 08:49:35 +02:00
soundwire soundwire: cadence: fix invalid PDI offset 2024-06-12 11:03:34 +02:00
spi spi: atmel-quadspi: Add missing check for clk_prepare 2024-08-03 08:48:52 +02:00
spmi spmi: hisi-spmi-controller: Do not override device identifier 2024-06-21 14:35:55 +02:00
ssb ssb: gpio: Use generic_handle_irq_safe() 2022-09-19 15:08:38 +02:00
staging greybus: arche-ctrl: move device table to its right location 2024-06-12 11:03:35 +02:00
target scsi: target: Fix SELinux error when systemd-modules loads the target module 2024-05-17 11:56:07 +02:00
tc The main MIPS changes for 5.6: 2020-01-31 11:28:31 -08:00
tee tee: optee: ffa: Fix missing-field-initializers warning 2024-07-25 09:49:17 +02:00
thermal thermal/drivers/qcom/lmh: Check for SCM availability at probe 2024-06-16 13:41:33 +02:00
thunderbolt thunderbolt: debugfs: Fix margin debugfs node creation condition 2024-06-21 14:35:44 +02:00
tty serial: imx: Raise TX trigger level to 8 2024-07-11 12:47:09 +02:00
ufs scsi: ufs: ufs-qcom: Clear qunipro_g4_sel for HW major version > 5 2024-06-12 11:03:33 +02:00
uio uio_hv_generic: Don't free decrypted memory 2024-05-17 11:56:08 +02:00
usb xhci: always resume roothubs if xHC was reset during resume 2024-07-18 13:18:39 +02:00
vdpa vduse: Temporarily fail if control queue feature requested 2024-07-05 09:31:48 +02:00
vfio VFIO: Add the SPR_DSA and SPR_IAX devices to the denylist 2024-05-17 11:56:23 +02:00
vhost vhost/vsock: always initialize seqpacket_allow 2024-08-03 08:49:21 +02:00
video fbdev: savage: Handle err return when savagefb_check_var failed 2024-06-16 13:41:36 +02:00
virt drivers/virt/acrn: fix PFNMAP PTE checks in acrn_vm_ram_map() 2024-06-12 11:03:30 +02:00
virtio virtio: delete vq in vp_find_vqs_msix() when request_irq() fails 2024-06-12 11:03:52 +02:00
vlynq bus: Make remove callback return void 2021-07-21 11:53:42 +02:00
w1 w1: fix loop in w1_fini() 2023-07-19 16:21:48 +02:00
watchdog watchdog: rti_wdt: Set min_hw_heartbeat_ms to accommodate a safety margin 2024-06-16 13:41:39 +02:00
xen drivers/xen: Improve the late XenStore init protocol 2024-06-12 11:03:53 +02:00
zorro proc: remove PDE_DATA() completely 2022-01-22 08:33:37 +02:00
Kconfig vme: move back to staging 2022-06-10 15:38:14 +02:00
Makefile hwtracing: hisi_ptt: Add trace function support for HiSilicon PCIe Tune and Trace device 2022-09-08 16:26:17 -06:00