enhance error handling in frontend commands
This commit is contained in:
@@ -287,6 +287,7 @@ static enum ec3_status capture_directory(
|
|||||||
vnode.v_id = ctx->ctx_tree.fs_root->n_id;
|
vnode.v_id = ctx->ctx_tree.fs_root->n_id;
|
||||||
ec3_volume_put_vnode(volume, &vnode);
|
ec3_volume_put_vnode(volume, &vnode);
|
||||||
|
|
||||||
|
enum ec3_status status2 = EC3_SUCCESS;
|
||||||
b_directory_iterator it;
|
b_directory_iterator it;
|
||||||
b_directory_iterator_begin(dir, &it, B_DIRECTORY_ITERATE_PARENT_LAST);
|
b_directory_iterator_begin(dir, &it, B_DIRECTORY_ITERATE_PARENT_LAST);
|
||||||
while (b_directory_iterator_is_valid(&it)) {
|
while (b_directory_iterator_is_valid(&it)) {
|
||||||
@@ -300,7 +301,7 @@ static enum ec3_status capture_directory(
|
|||||||
|
|
||||||
printf("file: %s\n", b_path_ptr(it.filepath));
|
printf("file: %s\n", b_path_ptr(it.filepath));
|
||||||
|
|
||||||
enum ec3_status status2 = capture_file(
|
status2 = capture_file(
|
||||||
ctx,
|
ctx,
|
||||||
volume,
|
volume,
|
||||||
dir,
|
dir,
|
||||||
@@ -334,7 +335,7 @@ static enum ec3_status capture_directory(
|
|||||||
ec3_tag_ioctx_close(volu);
|
ec3_tag_ioctx_close(volu);
|
||||||
|
|
||||||
b_directory_release(dir);
|
b_directory_release(dir);
|
||||||
return EC3_SUCCESS;
|
return status2;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int capture(
|
static int capture(
|
||||||
|
|||||||
13
src/tree.c
13
src/tree.c
@@ -65,7 +65,9 @@ static enum ec3_status collect_children(
|
|||||||
&chunk);
|
&chunk);
|
||||||
|
|
||||||
if (status != EC3_SUCCESS) {
|
if (status != EC3_SUCCESS) {
|
||||||
b_err("cannot read chunk.");
|
char tmp[64];
|
||||||
|
ec3_chunk_id_to_string(parent->i_vnode.v_data, tmp, sizeof tmp);
|
||||||
|
b_err("cannot read chunk %s.", tmp);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -98,11 +100,18 @@ static enum ec3_status collect_children(
|
|||||||
|
|
||||||
child->i_name = b_string_steal(ctx->ctx_str);
|
child->i_name = b_string_steal(ctx->ctx_str);
|
||||||
child->i_depth = parent->i_depth + 1;
|
child->i_depth = parent->i_depth + 1;
|
||||||
ec3_volume_get_vnode(
|
status = ec3_volume_get_vnode(
|
||||||
ctx->ctx_volume,
|
ctx->ctx_volume,
|
||||||
vnode_id,
|
vnode_id,
|
||||||
&child->i_vnode);
|
&child->i_vnode);
|
||||||
|
|
||||||
|
if (status != EC3_SUCCESS) {
|
||||||
|
b_err("cannot find vnode %lu (child of %s)",
|
||||||
|
vnode_id,
|
||||||
|
parent->i_name);
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
b_queue_insert_after(
|
b_queue_insert_after(
|
||||||
&ctx->ctx_stack,
|
&ctx->ctx_stack,
|
||||||
&child->i_entry,
|
&child->i_entry,
|
||||||
|
|||||||
Reference in New Issue
Block a user