Signed-off-by: Claudio Fontana <cfont...@suse.de> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> --- src/util/virfile.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/src/util/virfile.c b/src/util/virfile.c index 8b07db6679..a9fcac1af9 100644 --- a/src/util/virfile.c +++ b/src/util/virfile.c @@ -4741,6 +4741,10 @@ virFileDiskCopy(int disk_fd, const char *disk_path, int remote_fd, const char *r if (!p.isBlockDev && p.isDirect) { off_t off; if (p.isWrite) { + /* + * note: for write we do not only check that disk_fd is seekable, + * we also want to know that the file is empty, so we need SEEK_END. + */ if ((off = lseek(disk_fd, 0, SEEK_END)) != 0) { virReportSystemError(off < 0 ? errno : EINVAL, "%s", _("O_DIRECT write needs empty seekable file")); -- 2.35.3