Signed-off-by: Claudio Fontana <cfontana(a)suse.de>
---
src/util/virfile.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/util/virfile.c b/src/util/virfile.c
index 87d3e53819..64d7f6948b 100644
--- a/src/util/virfile.c
+++ b/src/util/virfile.c
@@ -4758,6 +4758,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.34.1