mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 14:15:28 +00:00
iohelper: Don't report errors on special FDs
Some FDs may not implement fdatasync() functionality, e.g. pipes. In that case EINVAL or EROFS is returned. We don't want to fail then nor report any error. Reported-by: Christophe Fergeau <cfergeau@redhat.com>
This commit is contained in:
parent
b27b712c24
commit
46325e5131
@ -181,8 +181,11 @@ runIO(const char *path, int fd, int oflags, unsigned long long length)
|
||||
|
||||
/* Ensure all data is written */
|
||||
if (fdatasync(fdout) < 0) {
|
||||
virReportSystemError(errno, _("unable to fsync %s"), fdoutname);
|
||||
goto cleanup;
|
||||
if (errno != EINVAL && errno != EROFS) {
|
||||
/* fdatasync() may fail on some special FDs, e.g. pipes */
|
||||
virReportSystemError(errno, _("unable to fsync %s"), fdoutname);
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user