summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorAkilesh Kailash <akailash@google.com>2020-12-28 07:14:07 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-01-19 18:27:21 +0100
commit1ac4156de54973e405393a5da1f17fc748252c1b (patch)
tree66c7fdc1c79f8a9db3f60aec04ef7a54851b3e03 /include/linux
parent5de4f3a301f1090ee7096741c2d0fbf8e5570165 (diff)
dm snapshot: flush merged data before committing metadata
commit fcc42338375a1e67b8568dbb558f8b784d0f3b01 upstream. If the origin device has a volatile write-back cache and the following events occur: 1: After finishing merge operation of one set of exceptions, merge_callback() is invoked. 2: Update the metadata in COW device tracking the merge completion. This update to COW device is flushed cleanly. 3: System crashes and the origin device's cache where the recent merge was completed has not been flushed. During the next cycle when we read the metadata from the COW device, we will skip reading those metadata whose merge was completed in step (1). This will lead to data loss/corruption. To address this, flush the origin device post merge IO before updating the metadata. Cc: stable@vger.kernel.org Signed-off-by: Akilesh Kailash <akailash@google.com> Signed-off-by: Mike Snitzer <snitzer@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions