Skip to content

Commit 934aee1

Browse files
Vladimir Sementsov-Ogievskiyebblake
authored andcommitted
block: use return status of bdrv_append()
Now bdrv_append returns status and we can drop all the local_err things around it. Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]> Reviewed-by: Alberto Garcia <[email protected]> Message-Id: <[email protected]> Signed-off-by: Eric Blake <[email protected]>
1 parent a1e708f commit 934aee1

File tree

6 files changed

+23
-30
lines changed

6 files changed

+23
-30
lines changed

block.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3118,7 +3118,6 @@ static BlockDriverState *bdrv_append_temp_snapshot(BlockDriverState *bs,
31183118
int64_t total_size;
31193119
QemuOpts *opts = NULL;
31203120
BlockDriverState *bs_snapshot = NULL;
3121-
Error *local_err = NULL;
31223121
int ret;
31233122

31243123
/* if snapshot, we create a temporary backing file and open it
@@ -3165,9 +3164,8 @@ static BlockDriverState *bdrv_append_temp_snapshot(BlockDriverState *bs,
31653164
* order to be able to return one, we have to increase
31663165
* bs_snapshot's refcount here */
31673166
bdrv_ref(bs_snapshot);
3168-
bdrv_append(bs_snapshot, bs, &local_err);
3169-
if (local_err) {
3170-
error_propagate(errp, local_err);
3167+
ret = bdrv_append(bs_snapshot, bs, errp);
3168+
if (ret < 0) {
31713169
bs_snapshot = NULL;
31723170
goto out;
31733171
}

block/backup-top.c

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,8 @@ BlockDriverState *bdrv_backup_top_append(BlockDriverState *source,
191191
BlockCopyState **bcs,
192192
Error **errp)
193193
{
194-
Error *local_err = NULL;
194+
ERRP_GUARD();
195+
int ret;
195196
BDRVBackupTopState *state;
196197
BlockDriverState *top;
197198
bool appended = false;
@@ -224,9 +225,9 @@ BlockDriverState *bdrv_backup_top_append(BlockDriverState *source,
224225
bdrv_drained_begin(source);
225226

226227
bdrv_ref(top);
227-
bdrv_append(top, source, &local_err);
228-
if (local_err) {
229-
error_prepend(&local_err, "Cannot append backup-top filter: ");
228+
ret = bdrv_append(top, source, errp);
229+
if (ret < 0) {
230+
error_prepend(errp, "Cannot append backup-top filter: ");
230231
goto fail;
231232
}
232233
appended = true;
@@ -236,19 +237,18 @@ BlockDriverState *bdrv_backup_top_append(BlockDriverState *source,
236237
* we want.
237238
*/
238239
state->active = true;
239-
bdrv_child_refresh_perms(top, top->backing, &local_err);
240-
if (local_err) {
241-
error_prepend(&local_err,
242-
"Cannot set permissions for backup-top filter: ");
240+
ret = bdrv_child_refresh_perms(top, top->backing, errp);
241+
if (ret < 0) {
242+
error_prepend(errp, "Cannot set permissions for backup-top filter: ");
243243
goto fail;
244244
}
245245

246246
state->cluster_size = cluster_size;
247247
state->bcs = block_copy_state_new(top->backing, state->target,
248248
cluster_size, perf->use_copy_range,
249-
write_flags, &local_err);
250-
if (local_err) {
251-
error_prepend(&local_err, "Cannot create block-copy-state: ");
249+
write_flags, errp);
250+
if (!state->bcs) {
251+
error_prepend(errp, "Cannot create block-copy-state: ");
252252
goto fail;
253253
}
254254
*bcs = state->bcs;
@@ -266,7 +266,6 @@ BlockDriverState *bdrv_backup_top_append(BlockDriverState *source,
266266
}
267267

268268
bdrv_drained_end(source);
269-
error_propagate(errp, local_err);
270269

271270
return NULL;
272271
}

block/commit.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,6 @@ void commit_start(const char *job_id, BlockDriverState *bs,
254254
BlockDriverState *iter;
255255
BlockDriverState *commit_top_bs = NULL;
256256
BlockDriverState *filtered_base;
257-
Error *local_err = NULL;
258257
int64_t base_size, top_size;
259258
uint64_t base_perms, iter_shared_perms;
260259
int ret;
@@ -312,10 +311,9 @@ void commit_start(const char *job_id, BlockDriverState *bs,
312311

313312
commit_top_bs->total_sectors = top->total_sectors;
314313

315-
bdrv_append(commit_top_bs, top, &local_err);
316-
if (local_err) {
314+
ret = bdrv_append(commit_top_bs, top, errp);
315+
if (ret < 0) {
317316
commit_top_bs = NULL;
318-
error_propagate(errp, local_err);
319317
goto fail;
320318
}
321319

block/mirror.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1560,7 +1560,6 @@ static BlockJob *mirror_start_job(
15601560
BlockDriverState *mirror_top_bs;
15611561
bool target_is_backing;
15621562
uint64_t target_perms, target_shared_perms;
1563-
Error *local_err = NULL;
15641563
int ret;
15651564

15661565
if (granularity == 0) {
@@ -1609,12 +1608,11 @@ static BlockJob *mirror_start_job(
16091608
* it alive until block_job_create() succeeds even if bs has no parent. */
16101609
bdrv_ref(mirror_top_bs);
16111610
bdrv_drained_begin(bs);
1612-
bdrv_append(mirror_top_bs, bs, &local_err);
1611+
ret = bdrv_append(mirror_top_bs, bs, errp);
16131612
bdrv_drained_end(bs);
16141613

1615-
if (local_err) {
1614+
if (ret < 0) {
16161615
bdrv_unref(mirror_top_bs);
1617-
error_propagate(errp, local_err);
16181616
return NULL;
16191617
}
16201618

blockdev.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1432,6 +1432,7 @@ typedef struct ExternalSnapshotState {
14321432
static void external_snapshot_prepare(BlkActionState *common,
14331433
Error **errp)
14341434
{
1435+
int ret;
14351436
int flags = 0;
14361437
QDict *options = NULL;
14371438
Error *local_err = NULL;
@@ -1591,9 +1592,8 @@ static void external_snapshot_prepare(BlkActionState *common,
15911592
* can fail, so we need to do it in .prepare; undoing it for abort is
15921593
* always possible. */
15931594
bdrv_ref(state->new_bs);
1594-
bdrv_append(state->new_bs, state->old_bs, &local_err);
1595-
if (local_err) {
1596-
error_propagate(errp, local_err);
1595+
ret = bdrv_append(state->new_bs, state->old_bs, errp);
1596+
if (ret < 0) {
15971597
goto out;
15981598
}
15991599
state->overlay_appended = true;

tests/test-bdrv-graph-mod.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ static BlockDriverState *pass_through_node(const char *name)
101101
*/
102102
static void test_update_perm_tree(void)
103103
{
104-
Error *local_err = NULL;
104+
int ret;
105105

106106
BlockBackend *root = blk_new(qemu_get_aio_context(),
107107
BLK_PERM_WRITE | BLK_PERM_CONSISTENT_READ,
@@ -114,8 +114,8 @@ static void test_update_perm_tree(void)
114114
bdrv_attach_child(filter, bs, "child", &child_of_bds,
115115
BDRV_CHILD_FILTERED | BDRV_CHILD_PRIMARY, &error_abort);
116116

117-
bdrv_append(filter, bs, &local_err);
118-
error_free_or_abort(&local_err);
117+
ret = bdrv_append(filter, bs, NULL);
118+
g_assert_cmpint(ret, <, 0);
119119

120120
blk_unref(root);
121121
}

0 commit comments

Comments
 (0)