qemu-img: Improve documentation for PREALLOC_MODE_FALLOC
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>
This commit is contained in:
parent
5a1dad9d5a
commit
c6ccc2c5e6
|
@ -1594,9 +1594,14 @@ static int raw_create(const char *filename, QemuOpts *opts, Error **errp)
|
||||||
switch (prealloc) {
|
switch (prealloc) {
|
||||||
#ifdef CONFIG_POSIX_FALLOCATE
|
#ifdef CONFIG_POSIX_FALLOCATE
|
||||||
case PREALLOC_MODE_FALLOC:
|
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);
|
result = -posix_fallocate(fd, 0, total_size);
|
||||||
if (result != 0) {
|
if (result != 0) {
|
||||||
|
/* posix_fallocate() doesn't set errno. */
|
||||||
error_setg_errno(errp, -result,
|
error_setg_errno(errp, -result,
|
||||||
"Could not preallocate data for the new file");
|
"Could not preallocate data for the new file");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue