block/raw-posix: Only sync after successful preallocation

The loop which filled the file with zeroes may have been left early due
to an error. In that case, the fsync() should be skipped.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Max Reitz 2014-11-18 11:23:05 +01:00 committed by Kevin Wolf
parent 39411cf3c3
commit 731de38052

View File

@ -1453,7 +1453,9 @@ static int raw_create(const char *filename, QemuOpts *opts, Error **errp)
}
left -= result;
}
fsync(fd);
if (result >= 0) {
fsync(fd);
}
g_free(buf);
break;
}