summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/afr/src/afr-transaction.c
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/cluster/afr/src/afr-transaction.c')
-rw-r--r--xlators/cluster/afr/src/afr-transaction.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/xlators/cluster/afr/src/afr-transaction.c b/xlators/cluster/afr/src/afr-transaction.c
index 6130ad76543..64a42d9fc7e 100644
--- a/xlators/cluster/afr/src/afr-transaction.c
+++ b/xlators/cluster/afr/src/afr-transaction.c
@@ -207,6 +207,7 @@ afr_transaction_detach_fop_frame (call_frame_t *frame)
local = frame->local;
+ afr_handle_inconsistent_fop (frame, &local->op_ret, &local->op_errno);
LOCK (&frame->lock);
{
fop_frame = local->transaction.main_frame;
@@ -2238,6 +2239,11 @@ afr_transaction (call_frame_t *frame, xlator_t *this, afr_transaction_type type)
local->transaction.resume = afr_transaction_resume;
local->transaction.type = type;
+ if (!afr_is_consistent_io_possible (local, priv, &ret)) {
+ ret = -ret; /*op_errno to ret conversion*/
+ goto out;
+ }
+
ret = afr_transaction_local_init (local, this);
if (ret < 0)
goto out;