qemu/block
Max Reitz d0bc9e5d5e block/file-posix: Generalize raw_regular_truncate
Currently, raw_regular_truncate() is intended for setting the size of a
newly created file. However, we also want to use it for truncating an
existing file in which case only the newly added space (when growing)
should be preallocated.

This also means that if resizing failed, we should try to restore the
original file size. This is important when using preallocation.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 20170613202107.10125-8-mreitz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2017-07-11 17:45:01 +02:00
..
accounting.c block: make accounting thread-safe 2017-06-16 07:55:00 +08:00
backup.c block: Make bdrv_is_allocated() byte-based 2017-07-10 13:18:07 +02:00
blkdebug.c block: Add PreallocMode to bdrv_truncate() 2017-07-11 17:45:01 +02:00
blkreplay.c block: change variable names in BlockDriverState 2017-06-26 14:54:46 +02:00
blkverify.c blkverify: Catch bs->exact_filename overflow 2017-06-26 14:54:46 +02:00
block-backend.c block: Add PreallocMode to blk_truncate() 2017-07-11 17:45:01 +02:00
bochs.c block: do not set BDS read_only if copy_on_read enabled 2017-04-24 15:09:33 -04:00
cloop.c block: do not set BDS read_only if copy_on_read enabled 2017-04-24 15:09:33 -04:00
commit.c block: Add PreallocMode to blk_truncate() 2017-07-11 17:45:01 +02:00
crypto.c block: Add PreallocMode to bdrv_truncate() 2017-07-11 17:45:01 +02:00
crypto.h qcow: convert QCow to use QCryptoBlock for encryption 2017-07-11 17:44:56 +02:00
curl.c curl: do not do aio_poll when waiting for a free CURLState 2017-05-16 10:34:50 -04:00
dirty-bitmap.c block: release persistent bitmaps on inactivate 2017-07-11 17:44:59 +02:00
dmg-bz2.c dmg: Move libbz2 code to dmg-bz2.so 2016-10-07 14:14:06 +02:00
dmg.c block: do not set BDS read_only if copy_on_read enabled 2017-04-24 15:09:33 -04:00
dmg.h dmg: Move libbz2 code to dmg-bz2.so 2016-10-07 14:14:06 +02:00
file-posix.c block/file-posix: Generalize raw_regular_truncate 2017-07-11 17:45:01 +02:00
file-win32.c block: Add PreallocMode to BD.bdrv_truncate() 2017-07-11 17:45:01 +02:00
gluster.c block: Add PreallocMode to BD.bdrv_truncate() 2017-07-11 17:45:01 +02:00
io.c block/dirty-bitmap: add readonly field to BdrvDirtyBitmap 2017-07-11 17:44:58 +02:00
iscsi-opts.c block/iscsi: statically link qemu_iscsi_opts 2017-01-27 18:07:58 +01:00
iscsi.c block: Add PreallocMode to BD.bdrv_truncate() 2017-07-11 17:45:01 +02:00
linux-aio.c block: explicitly acquire aiocontext in aio callbacks that need it 2017-02-21 11:39:39 +00:00
Makefile.objs qcow2: add bitmaps extension 2017-07-11 17:44:57 +02:00
mirror.c block: Add PreallocMode to blk_truncate() 2017-07-11 17:45:01 +02:00
nbd-client.c nbd: fix NBD over TLS 2017-07-04 14:30:03 +02:00
nbd-client.h block: change variable names in BlockDriverState 2017-06-26 14:54:46 +02:00
nbd.c block: Do not strcmp() with NULL uri->scheme 2017-06-26 14:54:46 +02:00
nfs.c block: Add PreallocMode to BD.bdrv_truncate() 2017-07-11 17:45:01 +02:00
null.c qobject: Use simpler QDict/QList scalar insertion macros 2017-05-09 09:13:51 +02:00
parallels.c block: Add PreallocMode to blk_truncate() 2017-07-11 17:45:01 +02:00
qapi.c block: remove all encryption handling APIs 2017-07-11 17:44:56 +02:00
qcow2-bitmap.c qcow2: add .bdrv_remove_persistent_dirty_bitmap 2017-07-11 17:44:59 +02:00
qcow2-cache.c qcow2: Remove stale comment 2016-11-25 13:51:30 +01:00
qcow2-cluster.c qcow2: add support for LUKS encryption format 2017-07-11 17:44:56 +02:00
qcow2-refcount.c block: Add PreallocMode to bdrv_truncate() 2017-07-11 17:45:01 +02:00
qcow2-snapshot.c qcow2: Discard/zero clusters by byte count 2017-05-11 14:28:07 +02:00
qcow2.c block: Add PreallocMode to blk_truncate() 2017-07-11 17:45:01 +02:00
qcow2.h qcow2: add .bdrv_remove_persistent_dirty_bitmap 2017-07-11 17:44:59 +02:00
qcow.c block: Add PreallocMode to blk_truncate() 2017-07-11 17:45:01 +02:00
qed-check.c qed: Use DIV_ROUND_UP 2016-06-07 18:19:24 +03:00
qed-cluster.c qed: Add coroutine_fn to I/O path functions 2017-06-26 14:51:15 +02:00
qed-l2-cache.c block: Clean up includes 2016-01-20 13:36:23 +01:00
qed-table.c qed: Remove callback from qed_write_table() 2017-06-26 14:51:14 +02:00
qed.c block: Add PreallocMode to blk_truncate() 2017-07-11 17:45:01 +02:00
qed.h qed: Add coroutine_fn to I/O path functions 2017-06-26 14:51:15 +02:00
quorum.c qapi: merge QInt and QFloat in QNum 2017-06-20 14:31:31 +02:00
raw-format.c block: Add PreallocMode to bdrv_truncate() 2017-07-11 17:45:01 +02:00
rbd.c block: Add PreallocMode to BD.bdrv_truncate() 2017-07-11 17:45:01 +02:00
replication.c block: Make bdrv_is_allocated_above() byte-based 2017-07-10 13:18:07 +02:00
sheepdog.c block: Add PreallocMode to BD.bdrv_truncate() 2017-07-11 17:45:01 +02:00
snapshot.c qobject: Use simpler QDict/QList scalar insertion macros 2017-05-09 09:13:51 +02:00
ssh.c block: Do not strcmp() with NULL uri->scheme 2017-06-26 14:54:46 +02:00
stream.c block: Make bdrv_is_allocated_above() byte-based 2017-07-10 13:18:07 +02:00
throttle-groups.c throttle: Update throttle-groups.c documentation 2017-06-26 14:51:13 +02:00
trace-events trace: Show blockjob actions via bytes, not sectors 2017-07-10 13:18:06 +02:00
vdi.c block: Add PreallocMode to blk_truncate() 2017-07-11 17:45:01 +02:00
vhdx-endian.c vhdx: Use QEMU UUID API 2016-09-23 11:42:52 +08:00
vhdx-log.c block: Add PreallocMode to bdrv_truncate() 2017-07-11 17:45:01 +02:00
vhdx.c block: Add PreallocMode to blk_truncate() 2017-07-11 17:45:01 +02:00
vhdx.h block: vhdx - update PAYLOAD_BLOCK_UNMAPPED value to match 1.00 spec 2014-12-12 15:42:22 +00:00
vmdk.c block: Add PreallocMode to blk_truncate() 2017-07-11 17:45:01 +02:00
vpc.c block: Add PreallocMode to blk_truncate() 2017-07-11 17:45:01 +02:00
vvfat.c block: Make bdrv_is_allocated() byte-based 2017-07-10 13:18:07 +02:00
vxhs.c qobject: Use simpler QDict/QList scalar insertion macros 2017-05-09 09:13:51 +02:00
win32-aio.c block: explicitly acquire aiocontext in aio callbacks that need it 2017-02-21 11:39:39 +00:00
write-threshold.c block: use bdrv_add_before_write_notifier 2016-10-07 13:34:07 +02:00