If we cannot stat/open a file on pool refresh, returning -1 aborts
the refresh and the pool is undefined.
Only treat missing files as fatal unless VolOpenCheckMode is called
with the VIR_STORAGE_VOL_OPEN_ERROR flag. If this flag is missing
(when it's called from virStorageBackendProbeTarget in
virStorageBackendFileSystemRefresh), only emit a warning and return
-2 to let the caller skip over the file.
https://bugzilla.redhat.com/show_bug.cgi?id=977706
(cherry picked from commit
ee640f444bbdc976bdaed305f0d64d241d275376)
char *base = last_component(path);
if (lstat(path, sb) < 0) {
+ if (errno == ENOENT && !(flags & VIR_STORAGE_VOL_OPEN_ERROR)) {
+ VIR_WARN("ignoring missing file '%s'", path);
+ return -2;
+ }
virReportSystemError(errno,
_("cannot stat file '%s'"),
path);
VIR_WARN("ignoring dangling symlink '%s'", path);
return -2;
}
+ if (errno == ENOENT && !(flags & VIR_STORAGE_VOL_OPEN_ERROR)) {
+ VIR_WARN("ignoring missing file '%s'", path);
+ return -2;
+ }
virReportSystemError(errno,
_("cannot open volume '%s'"),