linux-stable/drivers/block
Ilya Dryomov 870611e487 rbd: get snapshot context after exclusive lock is ensured to be held
Move capturing the snapshot context into the image request state
machine, after exclusive lock is ensured to be held for the duration of
dealing with the image request.  This is needed to ensure correctness
of fast-diff states (OBJECT_EXISTS vs OBJECT_EXISTS_CLEAN) and object
deltas computed based off of them.  Otherwise the object map that is
forked for the snapshot isn't guaranteed to accurately reflect the
contents of the snapshot when the snapshot is taken under I/O.  This
breaks differential backup and snapshot-based mirroring use cases with
fast-diff enabled: since some object deltas may be incomplete, the
destination image may get corrupted.

Cc: stable@vger.kernel.org
Link: https://tracker.ceph.com/issues/61472
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Dongsheng Yang <dongsheng.yang@easystack.cn>
2023-06-06 09:54:27 +02:00
..
aoe driver core: class: remove module * from class_create() 2023-03-17 15:16:33 +01:00
drbd for-6.4/block-2023-05-06 2023-05-06 08:28:58 -07:00
mtip32xx block: move from strlcpy with unused retval to strscpy 2022-09-21 19:45:04 -06:00
null_blk for-6.4/block-2023-05-06 2023-05-06 08:28:58 -07:00
rnbd block/rnbd: replace REQ_OP_FLUSH with REQ_OP_WRITE 2023-05-12 08:56:42 -06:00
xen-blkback xen/blkback: move blkif_get_x86_*_req() into blkback.c 2023-04-25 11:09:30 +02:00
zram for-6.4/block-2023-05-06 2023-05-06 08:28:58 -07:00
amiflop.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
ataflop.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
brd.c block/drivers: remove dead clear of random flag 2023-04-25 08:02:11 -06:00
floppy.c mm, treewide: redefine MAX_ORDER sanely 2023-04-05 19:42:46 -07:00
Kconfig block: ublk: switch to ioctl command encoding 2023-04-18 20:13:30 -06:00
loop.c loop: LOOP_CONFIGURE: send uevents for partitions 2023-03-27 13:27:06 -06:00
Makefile Revert "pktcdvd: remove driver." 2023-01-04 14:44:13 -07:00
n64cart.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
nbd.c nbd: Fix debugfs_create_dir error checking 2023-05-12 08:56:33 -06:00
pktcdvd.c Driver core changes for 6.4-rc1 2023-04-27 11:53:57 -07:00
ps3disk.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
ps3vram.c ps3vram: remove bio splitting 2023-01-29 15:18:35 -07:00
rbd.c rbd: get snapshot context after exclusive lock is ensured to be held 2023-06-06 09:54:27 +02:00
rbd_types.h libceph, rbd: replace zero-length array with flexible-array 2020-06-01 13:22:53 +02:00
sunvdc.c block: sunvdc: add check for mdesc_grab() returning NULL 2023-03-15 08:48:58 -06:00
swim.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
swim3.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
swim_asm.S
ublk_drv.c ublk: fix AB-BA lockdep warning 2023-05-18 07:59:08 -06:00
virtio_blk.c virtio-blk: fix ZBD probe in kernels without ZBD support 2023-04-04 11:01:57 -04:00
xen-blkfront.c xen/blkfront: Only check REQ_FUA for writes 2023-05-24 16:35:39 +02:00
z2ram.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00