Am 08.03.2017 um 20:15 hat Max Reitz geschrieben:
> Add an Error parameter to the block drivers' bdrv_truncate() interface.
> If a block driver does not set this in case of an error, the generic
> bdrv_truncate() implementation will do so.
>
> Where it is obvious, this patch also makes some block drivers set this
> value.
>
> Signed-off-by: Max Reitz <[email protected]>
> diff --git a/block/iscsi.c b/block/iscsi.c
> index 75d890538e..ab559a6f71 100644
> --- a/block/iscsi.c
> +++ b/block/iscsi.c
> @@ -2060,7 +2060,7 @@ static void iscsi_reopen_commit(BDRVReopenState
> *reopen_state)
> }
> }
>
> -static int iscsi_truncate(BlockDriverState *bs, int64_t offset)
> +static int iscsi_truncate(BlockDriverState *bs, int64_t offset, Error **errp)
> {
> IscsiLun *iscsilun = bs->opaque;
> Error *local_err = NULL;
> @@ -2071,7 +2071,7 @@ static int iscsi_truncate(BlockDriverState *bs, int64_t
> offset)
>
> iscsi_readcapacity_sync(iscsilun, &local_err);
> if (local_err != NULL) {
> - error_free(local_err);
> + error_propagate(errp, local_err);
> return -EIO;
> }
I think this function contains a few more cases for patch 4.
Kevin