summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPranith Kumar K <pranithk@gluster.com>2012-05-20 21:02:55 +0530
committerVijay Bellur <vijay@gluster.com>2012-05-22 04:31:17 -0700
commit52f3aac6d80aea5d7c531005cb621463806000af (patch)
treef054898dd58be04d91f634128fcc36d22cf2cb41
parent86c8e411143a9ee2bfd81270676ebd2a987cf946 (diff)
cluster/afr: Unlock higher entry locks in rename entrylk failure.
Change-Id: I4646809ec86baf4b741a874353dbf27fbffb4791 BUG: 823255 Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Reviewed-on: http://review.gluster.com/3381 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
-rw-r--r--xlators/cluster/afr/src/afr-lk-common.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/xlators/cluster/afr/src/afr-lk-common.c b/xlators/cluster/afr/src/afr-lk-common.c
index 7e897a16673..92356c82e4c 100644
--- a/xlators/cluster/afr/src/afr-lk-common.c
+++ b/xlators/cluster/afr/src/afr-lk-common.c
@@ -57,6 +57,9 @@
int
afr_lock_blocking (call_frame_t *frame, xlator_t *this, int child_index);
+static int
+afr_copy_locked_nodes (call_frame_t *frame, xlator_t *this);
+
static uint64_t afr_lock_number = 1;
static uint64_t
@@ -860,6 +863,7 @@ afr_lock_lower_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
UNLOCK (&frame->lock);
if (op_ret != 0) {
+ afr_copy_locked_nodes (frame, this);
afr_unlock (frame, this);
goto out;
} else {