diff options
| -rw-r--r-- | xlators/cluster/afr/src/afr-transaction.c | 20 | ||||
| -rw-r--r-- | xlators/storage/posix/src/posix-inode-fd-ops.c | 5 | 
2 files changed, 10 insertions, 15 deletions
diff --git a/xlators/cluster/afr/src/afr-transaction.c b/xlators/cluster/afr/src/afr-transaction.c index 34f238f1cc8..77398519ba0 100644 --- a/xlators/cluster/afr/src/afr-transaction.c +++ b/xlators/cluster/afr/src/afr-transaction.c @@ -495,11 +495,10 @@ afr_txn_arbitrate_fop (call_frame_t *frame, xlator_t *this)                  local->op_errno =  ENOTCONN;                  for (i = 0; i < priv->child_count; i++)                          local->transaction.failed_subvols[i] = 1; -                afr_changelog_post_op (frame, this);/*uninherit should happen*/ -        } else { -                afr_transaction_fop (frame, this);          } +        afr_transaction_fop (frame, this); +          return;  } @@ -529,13 +528,6 @@ afr_transaction_perform_fop (call_frame_t *frame, xlator_t *this)                                  local->transaction.failed_subvols[i] = 1;                  }          } -        /*  Perform fops with the lk-owner from top xlator. -         *  Eg: lk-owner of posix-lk and flush should be same, -         *  flush cant clear the  posix-lks without that lk-owner. -         */ -        afr_save_lk_owner (frame); -        frame->root->lk_owner = -                local->transaction.main_frame->root->lk_owner;  	if (local->pre_op_compat)  		/* old mode, pre-op was done as afr_changelog_do() @@ -561,6 +553,14 @@ afr_transaction_perform_fop (call_frame_t *frame, xlator_t *this)          }  fop: +        /*  Perform fops with the lk-owner from top xlator. +         *  Eg: lk-owner of posix-lk and flush should be same, +         *  flush cant clear the  posix-lks without that lk-owner. +         */ +        afr_save_lk_owner (frame); +        frame->root->lk_owner = +                local->transaction.main_frame->root->lk_owner; +          if (priv->arbiter_count == 1) {                  afr_txn_arbitrate_fop (frame, this);          } else { diff --git a/xlators/storage/posix/src/posix-inode-fd-ops.c b/xlators/storage/posix/src/posix-inode-fd-ops.c index 0e7d3762ac8..8cfc4bceebc 100644 --- a/xlators/storage/posix/src/posix-inode-fd-ops.c +++ b/xlators/storage/posix/src/posix-inode-fd-ops.c @@ -4416,16 +4416,11 @@ do_xattrop (call_frame_t *frame, xlator_t *this, loc_t *loc, fd_t *fd,          dict_t               *xattr_rsp = NULL;          dict_t               *xdata_rsp = NULL;          struct iatt           stbuf = {0}; -        struct  posix_private *priv     = NULL; -          VALIDATE_OR_GOTO (frame, out);          VALIDATE_OR_GOTO (xattr, out);          VALIDATE_OR_GOTO (this, out); -        priv = this->private; -        DISK_SPACE_CHECK_AND_GOTO (frame, priv, xdata, op_ret, op_errno, out); -          if (fd) {                  op_ret = posix_fd_ctx_get (fd, this, &pfd, &op_errno);                  if (op_ret < 0) {  | 
