diff options
Diffstat (limited to 'xlators/cluster/afr/src/afr-transaction.c')
| -rw-r--r-- | xlators/cluster/afr/src/afr-transaction.c | 6 | 
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;  | 
