Replace truncate() with ftruncate()

Mingw32 does not have any truncate() API defined, but it does
have ftruncate(). So replace use of the former with the latter
This commit is contained in:
Daniel P. Berrange 2012-02-08 14:03:29 +00:00
parent 21fe874832
commit bc6bb3a3e8

View File

@ -939,12 +939,29 @@ virStorageFileFreeMetadata(virStorageFileMetadata *meta)
int
virStorageFileResize(const char *path, unsigned long long capacity)
{
if (truncate(path, capacity) < 0) {
virReportSystemError(errno, _("Failed to truncate file '%s'"), path);
return -1;
int fd = -1;
int ret = -1;
if ((fd = open(path, O_RDWR)) < 0) {
virReportSystemError(errno, _("Unable to open '%s'"), path);
goto cleanup;
}
return 0;
if (ftruncate(fd, capacity) < 0) {
virReportSystemError(errno, _("Failed to truncate file '%s'"), path);
goto cleanup;
}
if (VIR_CLOSE(fd) < 0) {
virReportSystemError(errno, _("Unable to save '%s'"), path);
goto cleanup;
}
ret = 0;
cleanup:
VIR_FORCE_CLOSE(fd);
return ret;
}
#ifdef __linux__