diff mbox series

[v2,2/2] qemu-img: info: try -U automatically

Message ID 20180108075935.23690-3-famz@redhat.com
State New
Headers show
Series None | expand

Commit Message

Fam Zheng Jan. 8, 2018, 7:59 a.m. UTC
The error message we had didn't have a hint about "-U" when locking the
image failed, which is not friendly. Also it is imaginable that the
reaction to that error by the user would be a retry with '-U'.

So the reason we require "-U" for "qemu-img info" if the image is used
is to raise the awareness about what could be wrong. A warning would do
just fine, especially since it is a little more informative.

The test case reference output is updated accordingly.

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 qemu-img.c                 | 14 ++++++++++++++
 tests/qemu-iotests/153.out |  3 +--
 2 files changed, 15 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/qemu-img.c b/qemu-img.c
index 828e3b3b88..ec71959632 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -2605,6 +2605,20 @@  static int img_info(int argc, char **argv)
 
     list = collect_image_info_list(image_opts, filename, fmt, chain,
                                    force_share, &local_err);
+    if (!list && !force_share) {
+        Error *local_err2 = NULL;
+        list = collect_image_info_list(image_opts, filename, fmt, chain,
+                                       true, &local_err2);
+        if (list) {
+            warn_report("--force-share (-U) is not used but it "
+                         "seems the image is attached to a running guest; "
+                         "the information may be inaccurate if it is being "
+                         "updated");
+            error_free(local_err);
+        } else {
+            error_free(local_err2);
+        }
+    }
     if (!list) {
         error_reportf_err(local_err, "Could not open '%s': ", filename);
         return 1;
diff --git a/tests/qemu-iotests/153.out b/tests/qemu-iotests/153.out
index 5b917b177c..cbfdf242a8 100644
--- a/tests/qemu-iotests/153.out
+++ b/tests/qemu-iotests/153.out
@@ -41,8 +41,7 @@  Is another process using the image?
 no file open, try 'help open'
 
 _qemu_img_wrapper info TEST_DIR/t.qcow2
-qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "write" lock
-Is another process using the image?
+qemu-img: warning: --force-share (-U) is not used but it seems the image is attached to a running guest; the information may be inaccurate if it is being updated
 
 _qemu_img_wrapper check TEST_DIR/t.qcow2
 qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get shared "write" lock