OSDN Git Service

file-posix: Fix no-op bdrv_truncate() with falloc preallocation
authorKevin Wolf <kwolf@redhat.com>
Wed, 7 Feb 2018 15:38:05 +0000 (16:38 +0100)
committerKevin Wolf <kwolf@redhat.com>
Fri, 9 Mar 2018 14:17:48 +0000 (15:17 +0100)
commit89b259eeaa0f4ad3fa89cbe500da9335536e20ee
tree01656995c7920de5b036a78703931d9928585185
parent4906da7e4de3720995b644f9903879cfd5a51a40
file-posix: Fix no-op bdrv_truncate() with falloc preallocation

If bdrv_truncate() is called, but the requested size is the same as
before, don't call posix_fallocate(), which returns -EINVAL for length
zero and would therefore make bdrv_truncate() fail.

The problem can be triggered by creating a zero-sized raw image with
'falloc' preallocation mode.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
block/file-posix.c