From 63159cdb5374f458d7d2bffec24d4720ffc96d6c Mon Sep 17 00:00:00 2001 From: Ashish Pandey Date: Fri, 8 Mar 2019 10:42:12 +0530 Subject: cluster/afr : TA: Return actual error code in case of failure In afr_ta_post_op_do, we were sending EIO for every failure. However, the original error code should be sent. Change-Id: I9fdc15dac00d758baf8e6f14db244f526481a63a updates: bz#1686711 Signed-off-by: Ashish Pandey --- xlators/cluster/afr/src/afr-transaction.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'xlators/cluster/afr') diff --git a/xlators/cluster/afr/src/afr-transaction.c b/xlators/cluster/afr/src/afr-transaction.c index 428505630d6..defea0eb95c 100644 --- a/xlators/cluster/afr/src/afr-transaction.c +++ b/xlators/cluster/afr/src/afr-transaction.c @@ -32,7 +32,7 @@ static void afr_post_op_handle_success(call_frame_t *frame, xlator_t *this); static void -afr_post_op_handle_failure(call_frame_t *frame, xlator_t *this); +afr_post_op_handle_failure(call_frame_t *frame, xlator_t *this, int op_errno); void __afr_transaction_wake_shared(afr_local_t *local, struct list_head *shared); @@ -748,7 +748,7 @@ afr_ta_process_onwireq(afr_local_t *local, xlator_t *this) if (entry->ta_failed_subvol == bad_child) { afr_post_op_handle_success(entry->transaction.frame, this); } else { - afr_post_op_handle_failure(entry->transaction.frame, this); + afr_post_op_handle_failure(entry->transaction.frame, this, EIO); } } } @@ -1303,7 +1303,7 @@ out: /*Mark pending xattrs on the up data brick.*/ afr_post_op_handle_success(local->transaction.frame, this); } else { - afr_post_op_handle_failure(local->transaction.frame, this); + afr_post_op_handle_failure(local->transaction.frame, this, -ret); } return ret; } @@ -1396,9 +1396,9 @@ afr_post_op_handle_success(call_frame_t *frame, xlator_t *this) } static void -afr_post_op_handle_failure(call_frame_t *frame, xlator_t *this) +afr_post_op_handle_failure(call_frame_t *frame, xlator_t *this, int op_errno) { - afr_changelog_post_op_fail(frame, this, EIO); + afr_changelog_post_op_fail(frame, this, op_errno); return; } @@ -1428,7 +1428,7 @@ afr_ta_decide_post_op_state(call_frame_t *frame, xlator_t *this) afr_post_op_handle_success(frame, this); break; case TA_INFO_IN_MEMORY_FAILED: - afr_post_op_handle_failure(frame, this); + afr_post_op_handle_failure(frame, this, EIO); break; default: break; -- cgit