[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH V4 3/6] qcow2: do not free clusters when fail in hea
From: |
Wenchao Xia |
Subject: |
[Qemu-devel] [PATCH V4 3/6] qcow2: do not free clusters when fail in header update in qcow2_write_snapshots |
Date: |
Tue, 15 Oct 2013 05:52:30 +0800 |
Signed-off-by: Wenchao Xia <address@hidden>
---
block/qcow2-snapshot.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/block/qcow2-snapshot.c b/block/qcow2-snapshot.c
index 4bd494b..c933b7f 100644
--- a/block/qcow2-snapshot.c
+++ b/block/qcow2-snapshot.c
@@ -304,6 +304,13 @@ static int qcow2_write_snapshots(BlockDriverState *bs,
Error **errp)
PRIi64 " with size %" PRIu64 ":%d (%s)",
offsetof(QCowHeader, nb_snapshots), sizeof(header_data),
ret, strerror(-ret));
+ /*
+ * If the snapshot data part have been updated on disk, Then the
+ * clusters at snapshot_offset may be used in next snapshot operation.
+ * If we free those clusters in fail path, they may be allocated and
+ * made dirty causing damage, so skip cluster free for safe.
+ */
+ snapshots_offset = 0;
goto fail;
}
--
1.7.1
- [Qemu-devel] [PATCH V4 0/6] qcow2: rollback the modification on fail in snapshot creation, Wenchao Xia, 2013/10/15
- [Qemu-devel] [PATCH V4 6/6] qemu-iotests: add test for qcow2 snapshot, Wenchao Xia, 2013/10/15
- [Qemu-devel] [PATCH V4 2/6] qcow2: add error message in qcow2_write_snapshots(), Wenchao Xia, 2013/10/15
- [Qemu-devel] [PATCH V4 1/6] snapshot: add parameter *errp in snapshot create, Wenchao Xia, 2013/10/15
- [Qemu-devel] [PATCH V4 4/6] qcow2: cancel the modification on fail in qcow2_snapshot_create(), Wenchao Xia, 2013/10/15
- [Qemu-devel] [PATCH V4 5/6] blkdebug: add debug events for snapshot, Wenchao Xia, 2013/10/15
- [Qemu-devel] [PATCH V4 3/6] qcow2: do not free clusters when fail in header update in qcow2_write_snapshots,
Wenchao Xia <=
- Re: [Qemu-devel] [PATCH V4 0/6] qcow2: rollback the modification on fail in snapshot creation, Wenchao Xia, 2013/10/31