Report VIR_ERR_NO_STORAGE_VOL instead of a system error when lstat
fails because the file doesn't exist.
Fixes this problem in virt-install:
https://bugzilla.redhat.com/show_bug.cgi?id=1108922
Signed-off-by: Giuseppe Scrivano <gscrivan(a)redhat.com>
---
src/storage/storage_backend.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c
index 380ca58..b38af52 100644
--- a/src/storage/storage_backend.c
+++ b/src/storage/storage_backend.c
@@ -1305,9 +1305,15 @@ virStorageBackendVolOpen(const char *path, struct stat *sb,
bool noerror = (flags & VIR_STORAGE_VOL_OPEN_NOERROR);
if (lstat(path, sb) < 0) {
- if (errno == ENOENT && noerror) {
- VIR_WARN("ignoring missing file '%s'", path);
- return -2;
+ if (errno == ENOENT) {
+ if (noerror) {
+ VIR_WARN("ignoring missing file '%s'", path);
+ return -2;
+ }
+ virReportError(VIR_ERR_NO_STORAGE_VOL,
+ _("no storage vol with matching path
'%s'"),
+ path);
+ return -1;
}
virReportSystemError(errno,
_("cannot stat file '%s'"),
--
1.9.3