Skip to content

Commit

Permalink
qemu-img: Improve documentation for PREALLOC_MODE_FALLOC
Browse files Browse the repository at this point in the history
Now that we are truncating the file in both PREALLOC_MODE_FULL and
PREALLOC_MODE_OFF, not truncating in PREALLOC_MODE_FALLOC looks odd.
Add a comment explaining why we do not truncate in this case.

Signed-off-by: Nir Soffer <nirsof@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
  • Loading branch information
nirs authored and kevmw committed Feb 24, 2017
1 parent 5a1dad9 commit c6ccc2c
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion block/file-posix.c
Expand Up @@ -1594,9 +1594,14 @@ static int raw_create(const char *filename, QemuOpts *opts, Error **errp)
switch (prealloc) {
#ifdef CONFIG_POSIX_FALLOCATE
case PREALLOC_MODE_FALLOC:
/* posix_fallocate() doesn't set errno. */
/*
* Truncating before posix_fallocate() makes it about twice slower on
* file systems that do not support fallocate(), trying to check if a
* block is allocated before allocating it, so don't do that here.
*/
result = -posix_fallocate(fd, 0, total_size);
if (result != 0) {
/* posix_fallocate() doesn't set errno. */
error_setg_errno(errp, -result,
"Could not preallocate data for the new file");
}
Expand Down

0 comments on commit c6ccc2c

Please sign in to comment.