mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-23 21:15:20 +00:00
Ignore missing files on pool refresh
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)
This commit is contained in:
parent
1710925ad9
commit
ba7cc215fb
@ -1130,6 +1130,10 @@ virStorageBackendVolOpenCheckMode(const char *path, struct stat *sb,
|
||||
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);
|
||||
@ -1150,6 +1154,10 @@ virStorageBackendVolOpenCheckMode(const char *path, struct stat *sb,
|
||||
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'"),
|
||||
|
Loading…
x
Reference in New Issue
Block a user