file-set-size.c revision 54fc3887b43fac7cb0a62babcff6234b9517e302
08b30498acefc69e223baf7eda6429be98cc3a10Timo Sirainen/* Copyright (c) 2002-2010 Dovecot authors, see the included COPYING file */
345212e8f61ebf14ff4f80df26df9e655eb5121eTimo Sirainen# define _XOPEN_SOURCE 600 /* Required by glibc, breaks Solaris 9 */
12d34ab79772e0748a1daef30fa749dfe3036608Timo Sirainen err = posix_fallocate(fd, st.st_size, size - st.st_size);
f0569d9fbb25c8437760be69f194595a841ad711Timo Sirainen /* Not supported by kernel, fallback to writing. */
f0569d9fbb25c8437760be69f194595a841ad711Timo Sirainen /* start growing the file */
abe8230dd1dd37d7ccf0163100e934bb5e658c20Timo Sirainen memset(block, 0, I_MIN((ssize_t)sizeof(block), size - offset));
313fe89df4d91cd0cd7f3558dc6d7fd21ad39eeeTimo Sirainenint file_preallocate(int fd ATTR_UNUSED, off_t size ATTR_UNUSED)
313fe89df4d91cd0cd7f3558dc6d7fd21ad39eeeTimo Sirainen#if defined(HAVE_FALLOCATE) && defined(FALLOC_FL_KEEP_SIZE)