libsnapshot: Merge completion for sector 0
Snapuserd daemon parses the merge completion request based on how the dm-snapshot merge is done. dm-snapshot marks the merge as complete by zeroing out the metadata viz old-chunk and new-chunk id's. If we have a sector 0 operation such as copy/replace op, then old-chunk id will be 0 and new-chunk id will be a non-zero pseudo number. Once the merge is complete, then old-chunk and new-chunk will be 0. The problem is that daemon used to track the merge completion just by checking if old-chunk was non-zero. This check is not sufficient and ends up tripping the assert in the daemon. Bug: 178061207 Test: Modify cow_snapuserd_test to test this case and validate the IO path. Reported-by:Kelvin Zhang <zhangkelvin@google.com> Signed-off-by:
Akilesh Kailash <akailash@google.com> Change-Id: I6603af1c7b55e487dc3aec0c30c0a9dea0fedb56
Loading
Please register or sign in to comment