* [Qemu-devel] [PATCH for 2.1 V3] qemu-img info: show nocow info
@ 2014-07-09 2:43 Chunyan Liu
2014-07-09 2:53 ` Eric Blake
2014-07-28 15:19 ` Stefan Hajnoczi
0 siblings, 2 replies; 5+ messages in thread
From: Chunyan Liu @ 2014-07-09 2:43 UTC (permalink / raw)
To: qemu-devel; +Cc: Chunyan Liu, stefanha
Add nocow info in 'qemu-img info' output to show whether the file
currently has NOCOW flag set or not.
Signed-off-by: Chunyan Liu <cyliu@suse.com>
---
Changes:
- update output info to "NOCOW flag: set"
block/qapi.c | 25 +++++++++++++++++++++++++
qapi/block-core.json | 5 ++++-
2 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/block/qapi.c b/block/qapi.c
index f44f6b4..aa53f19 100644
--- a/block/qapi.c
+++ b/block/qapi.c
@@ -28,6 +28,13 @@
#include "qapi-visit.h"
#include "qapi/qmp-output-visitor.h"
#include "qapi/qmp/types.h"
+#ifdef __linux__
+#include <linux/fs.h>
+#include <sys/ioctl.h>
+#ifndef FS_NOCOW_FL
+#define FS_NOCOW_FL 0x00800000 /* Do not cow file */
+#endif
+#endif
BlockDeviceInfo *bdrv_block_device_info(BlockDriverState *bs)
{
@@ -173,6 +180,20 @@ void bdrv_query_image_info(BlockDriverState *bs,
Error *err = NULL;
ImageInfo *info = g_new0(ImageInfo, 1);
+#ifdef __linux__
+ int fd, attr;
+
+ /* get NOCOW info */
+ fd = qemu_open(bs->filename, O_RDONLY | O_NONBLOCK);
+ if (fd >= 0) {
+ if (ioctl(fd, FS_IOC_GETFLAGS, &attr) == 0 && (attr & FS_NOCOW_FL)) {
+ info->has_nocow = true;
+ info->nocow = true;
+ }
+ qemu_close(fd);
+ }
+#endif
+
bdrv_get_geometry(bs, &total_sectors);
info->filename = g_strdup(bs->filename);
@@ -625,4 +646,8 @@ void bdrv_image_info_dump(fprintf_function func_fprintf, void *f,
func_fprintf(f, "Format specific information:\n");
bdrv_image_info_specific_dump(func_fprintf, f, info->format_specific);
}
+
+ if (info->has_nocow && info->nocow) {
+ func_fprintf(f, "NOCOW flag: set\n");
+ }
}
diff --git a/qapi/block-core.json b/qapi/block-core.json
index e378653..deb785b 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -115,6 +115,8 @@
# @format-specific: #optional structure supplying additional format-specific
# information (since 1.7)
#
+# @nocow: #optional info of whether NOCOW flag is set or not. (since 2.1)
+#
# Since: 1.3
#
##
@@ -126,7 +128,8 @@
'*backing-filename': 'str', '*full-backing-filename': 'str',
'*backing-filename-format': 'str', '*snapshots': ['SnapshotInfo'],
'*backing-image': 'ImageInfo',
- '*format-specific': 'ImageInfoSpecific' } }
+ '*format-specific': 'ImageInfoSpecific',
+ '*nocow': 'bool' } }
##
# @ImageCheck:
--
1.8.4.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH for 2.1 V3] qemu-img info: show nocow info
2014-07-09 2:43 [Qemu-devel] [PATCH for 2.1 V3] qemu-img info: show nocow info Chunyan Liu
@ 2014-07-09 2:53 ` Eric Blake
2014-07-28 15:19 ` Stefan Hajnoczi
1 sibling, 0 replies; 5+ messages in thread
From: Eric Blake @ 2014-07-09 2:53 UTC (permalink / raw)
To: Chunyan Liu, qemu-devel; +Cc: stefanha
[-- Attachment #1: Type: text/plain, Size: 482 bytes --]
On 07/08/2014 08:43 PM, Chunyan Liu wrote:
> Add nocow info in 'qemu-img info' output to show whether the file
> currently has NOCOW flag set or not.
>
> Signed-off-by: Chunyan Liu <cyliu@suse.com>
> ---
> Changes:
> - update output info to "NOCOW flag: set"
>
Reviewed-by: Eric Blake <eblake@redhat.com>
counts as a completion of a new feature in 2.1
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH for 2.1 V3] qemu-img info: show nocow info
2014-07-09 2:43 [Qemu-devel] [PATCH for 2.1 V3] qemu-img info: show nocow info Chunyan Liu
2014-07-09 2:53 ` Eric Blake
@ 2014-07-28 15:19 ` Stefan Hajnoczi
2014-07-28 18:58 ` Eric Blake
1 sibling, 1 reply; 5+ messages in thread
From: Stefan Hajnoczi @ 2014-07-28 15:19 UTC (permalink / raw)
To: Chunyan Liu; +Cc: qemu-devel, stefanha
[-- Attachment #1: Type: text/plain, Size: 665 bytes --]
On Wed, Jul 09, 2014 at 10:43:13AM +0800, Chunyan Liu wrote:
> Add nocow info in 'qemu-img info' output to show whether the file
> currently has NOCOW flag set or not.
>
> Signed-off-by: Chunyan Liu <cyliu@suse.com>
> ---
> Changes:
> - update output info to "NOCOW flag: set"
>
> block/qapi.c | 25 +++++++++++++++++++++++++
> qapi/block-core.json | 5 ++++-
> 2 files changed, 29 insertions(+), 1 deletion(-)
This patch was sent on July 9th, after the 2.1 soft freeze when we stop
merging new features. Soft freeze was 17th of June.
Please resend for QEMU 2.2 and update the qapi-schema.json version
comment.
Thanks,
Stefan
[-- Attachment #2: Type: application/pgp-signature, Size: 473 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH for 2.1 V3] qemu-img info: show nocow info
2014-07-28 15:19 ` Stefan Hajnoczi
@ 2014-07-28 18:58 ` Eric Blake
2014-07-29 13:41 ` Stefan Hajnoczi
0 siblings, 1 reply; 5+ messages in thread
From: Eric Blake @ 2014-07-28 18:58 UTC (permalink / raw)
To: Stefan Hajnoczi, Chunyan Liu; +Cc: qemu-devel, stefanha
[-- Attachment #1: Type: text/plain, Size: 1400 bytes --]
On 07/28/2014 09:19 AM, Stefan Hajnoczi wrote:
> On Wed, Jul 09, 2014 at 10:43:13AM +0800, Chunyan Liu wrote:
>> Add nocow info in 'qemu-img info' output to show whether the file
>> currently has NOCOW flag set or not.
>>
>> Signed-off-by: Chunyan Liu <cyliu@suse.com>
>> ---
>> Changes:
>> - update output info to "NOCOW flag: set"
>>
>> block/qapi.c | 25 +++++++++++++++++++++++++
>> qapi/block-core.json | 5 ++++-
>> 2 files changed, 29 insertions(+), 1 deletion(-)
>
> This patch was sent on July 9th, after the 2.1 soft freeze when we stop
> merging new features. Soft freeze was 17th of June.
>
> Please resend for QEMU 2.2 and update the qapi-schema.json version
> comment.
There's still the argument that this is a bug fix for an incomplete
implementation of a new feature that IS in qemu 2.1 (that is, 2.1 is
adding the ability to set the nocow flag, but without this patch, that
addition is a write-only interface, and this patch is correcting the bug
to allow it to be a read-write interface).
But it is fairly late in the game - what is the level of damage if 2.1
is released with a write-only setting, and this patch is deferred to
2.2? Without some strong justification, I can agree with the decision
to postpone this patch.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 539 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH for 2.1 V3] qemu-img info: show nocow info
2014-07-28 18:58 ` Eric Blake
@ 2014-07-29 13:41 ` Stefan Hajnoczi
0 siblings, 0 replies; 5+ messages in thread
From: Stefan Hajnoczi @ 2014-07-29 13:41 UTC (permalink / raw)
To: Eric Blake; +Cc: Stefan Hajnoczi, Chunyan Liu, qemu-devel
[-- Attachment #1: Type: text/plain, Size: 1473 bytes --]
On Mon, Jul 28, 2014 at 12:58:33PM -0600, Eric Blake wrote:
> On 07/28/2014 09:19 AM, Stefan Hajnoczi wrote:
> > On Wed, Jul 09, 2014 at 10:43:13AM +0800, Chunyan Liu wrote:
> >> Add nocow info in 'qemu-img info' output to show whether the file
> >> currently has NOCOW flag set or not.
> >>
> >> Signed-off-by: Chunyan Liu <cyliu@suse.com>
> >> ---
> >> Changes:
> >> - update output info to "NOCOW flag: set"
> >>
> >> block/qapi.c | 25 +++++++++++++++++++++++++
> >> qapi/block-core.json | 5 ++++-
> >> 2 files changed, 29 insertions(+), 1 deletion(-)
> >
> > This patch was sent on July 9th, after the 2.1 soft freeze when we stop
> > merging new features. Soft freeze was 17th of June.
> >
> > Please resend for QEMU 2.2 and update the qapi-schema.json version
> > comment.
>
> There's still the argument that this is a bug fix for an incomplete
> implementation of a new feature that IS in qemu 2.1 (that is, 2.1 is
> adding the ability to set the nocow flag, but without this patch, that
> addition is a write-only interface, and this patch is correcting the bug
> to allow it to be a read-write interface).
>
> But it is fairly late in the game - what is the level of damage if 2.1
> is released with a write-only setting, and this patch is deferred to
> 2.2? Without some strong justification, I can agree with the decision
> to postpone this patch.
You can use lsattr(1), so I see no critical need.
Stefan
[-- Attachment #2: Type: application/pgp-signature, Size: 473 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-07-29 13:44 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-09 2:43 [Qemu-devel] [PATCH for 2.1 V3] qemu-img info: show nocow info Chunyan Liu
2014-07-09 2:53 ` Eric Blake
2014-07-28 15:19 ` Stefan Hajnoczi
2014-07-28 18:58 ` Eric Blake
2014-07-29 13:41 ` Stefan Hajnoczi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).