Bug #64735
Updated by Radoslaw Zarzynski 2 months ago
when rollback_to snap, we use the latest clone's current overlap to intersection_of older snapshot's clone overlap. we should update the latest clone's current overlap to [0, obs.oi.size] before intersection_of other clone's overlap. How to reproduce: <pre> rbd create ceph-vm-pool-1/test_rollback -s 4M fio -ioengine=rbd -bs=4M -size=4M -rw=write -pool=ceph-vm-pool-1 -rbdname=test_rollback --group_report -name=test-direct=1 -numjobs=1 -iodepth=1 rbd snap create ceph-vm-pool-1/test_rollback@base fio -ioengine=rbd -bs=4M -size=4M -rw=write -pool=ceph-vm-pool-1 -rbdname=test_rollback --group_report -name=test-direct=1 -numjobs=1 -iodepth=1 [root@test xingd]# rbd du --exact ceph-vm-pool-1/test_rollback NAME PROVISIONED USED test_rollback@base 4 MiB 4 MiB test_rollback 4 MiB 4 MiB <TOTAL> 4 MiB 8 MiB rbd snap rollback ceph-vm-pool-1/test_rollback@base [root@test xingd]# rbd du --exact ceph-vm-pool-1/test_rollback NAME PROVISIONED USED test_rollback@base 4 MiB 4 MiB test_rollback 4 MiB 4 MiB ### this is not correct after rollback to snap <TOTAL> 4 MiB 8 MiB </pre>