|
From: | Max Reitz |
Subject: | Re: [Qemu-devel] [PATCH v2 1/5] qcow2: Add corrupt bit |
Date: | Thu, 29 Aug 2013 10:27:44 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130805 Thunderbird/17.0.8 |
Am 29.08.2013 10:23, schrieb Kevin Wolf:
Am 28.08.2013 um 16:55 hat Max Reitz geschrieben:This adds an incompatible bit indicating corruption to qcow2. Any image with this bit set may not be written to unless for repairing (and subsequently clearing the bit if the repair has been successful). Signed-off-by: Max Reitz <address@hidden> --- block/qcow2.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ block/qcow2.h | 7 ++++++- docs/specs/qcow2.txt | 7 ++++++- tests/qemu-iotests/031.out | 12 ++++++------ tests/qemu-iotests/036.out | 2 +- 5 files changed, 64 insertions(+), 9 deletions(-) @@ -402,6 +433,15 @@ static int qcow2_open(BlockDriverState *bs, QDict *options, int flags) goto fail; }+ if (s->incompatible_features & QCOW2_INCOMPAT_CORRUPT) {+ /* Corrupt images may not be written to unless they are being repaired + */ + if ((flags & BDRV_O_RDWR) && !(flags & BDRV_O_CHECK)) { + ret = -EACCES;Perhaps a (q)error_report() call would be appropriate so that the user isn't confused with only the "Permission denied" message
Seems reasonable.
(should it be EPERM rather than EACCES, too? Or maybe EROFS?)
I chose the value based on the following: $ touch foo $ chmod -w foo $ echo 'bar' > foo zsh: permission denied: foo (which is EACCES)EROFS sounds nice, but I wouldn't go for it since it's the image that's read-only and not the underlying FS (which I think EROFS is for…?)
Max
[Prev in Thread] | Current Thread | [Next in Thread] |