Skip to content

Commit 2640ec6

Browse files
committed
use _chsize_s on windows to grow file
1 parent 2538b5d commit 2640ec6

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

src/utils/file.c

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2717,21 +2717,19 @@ fio_send_file_write(FILE* out, send_file_state* st, char *buf, size_t len)
27172717
if (len == 0)
27182718
return true;
27192719

2720-
#ifndef WIN32
2720+
#ifdef WIN32
27212721
if (st->read_size > st->write_size &&
2722-
fseeko(out, st->read_size, SEEK_SET) != 0)
2722+
_chsize_s(fileno(out), st->read_size) != 0)
27232723
{
2724+
elog(WARNING, "Could not change file size to %lld: %m", st->read_size)
27242725
return false;
27252726
}
2726-
#else
2727-
while (st->read_size > st->write_size)
2727+
#endif
2728+
if (st->read_size > st->write_size &&
2729+
fseeko(out, st->read_size, SEEK_SET) != 0)
27282730
{
2729-
size_t wr = st->read_size - st->write_size;
2730-
wr = Min(wr, sizeof(zerobuf));
2731-
fwrite(zerobuf, 1, wr, out);
2732-
st->write_size += wr;
2731+
return false;
27332732
}
2734-
#endif
27352733

27362734
if (fwrite(buf, 1, len, out) != len)
27372735
{

0 commit comments

Comments
 (0)