gluster: Add preallocated truncation
By using qemu_do_cluster_truncate() in qemu_cluster_truncate(), we now automatically have preallocated truncation. Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
f3a33f795c
commit
c3132aff17
|
@ -1122,23 +1122,8 @@ static coroutine_fn int qemu_gluster_co_rw(BlockDriverState *bs,
|
||||||
static int qemu_gluster_truncate(BlockDriverState *bs, int64_t offset,
|
static int qemu_gluster_truncate(BlockDriverState *bs, int64_t offset,
|
||||||
PreallocMode prealloc, Error **errp)
|
PreallocMode prealloc, Error **errp)
|
||||||
{
|
{
|
||||||
int ret;
|
|
||||||
BDRVGlusterState *s = bs->opaque;
|
BDRVGlusterState *s = bs->opaque;
|
||||||
|
return qemu_gluster_do_truncate(s->fd, offset, prealloc, errp);
|
||||||
if (prealloc != PREALLOC_MODE_OFF) {
|
|
||||||
error_setg(errp, "Unsupported preallocation mode '%s'",
|
|
||||||
PreallocMode_str(prealloc));
|
|
||||||
return -ENOTSUP;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = glfs_ftruncate(s->fd, offset);
|
|
||||||
if (ret < 0) {
|
|
||||||
ret = -errno;
|
|
||||||
error_setg_errno(errp, -ret, "Failed to truncate file");
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static coroutine_fn int qemu_gluster_co_readv(BlockDriverState *bs,
|
static coroutine_fn int qemu_gluster_co_readv(BlockDriverState *bs,
|
||||||
|
|
Loading…
Reference in New Issue