提交 ba7cc215 编写于 作者: J Ján Tomko

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 ee640f44)
上级 1710925a
......@@ -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'"),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册