Message ID | 20180105065538.13375-3-famz@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 01/05/2018 12:55 AM, Fam Zheng wrote: > 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. > > 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 --git a/qemu-img.c b/qemu-img.c > index 7d3171c20c..9684937425 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) { > + error_report("WARNING: --force-share (-U) is not used but it " We have warn_report() for use in this situation (in which case, you do not want the leading "WARNING:" in your message). > + "seems the image is attached to a running guest; " > + "the information may be inaccurate if it is being " > + "updated."); For consistency, I'd prefer no trailing dot. > + 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..4de35184ba 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. and those changes tweak this line. But the idea makes sense, so with the changes, Reviewed-by: Eric Blake <eblake@redhat.com>
diff --git a/qemu-img.c b/qemu-img.c index 7d3171c20c..9684937425 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) { + error_report("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."); + 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..4de35184ba 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
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. 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(-)