summaryrefslogtreecommitdiffstats
path: root/xlators/features
diff options
context:
space:
mode:
authorPranith Kumar K <pranithk@gluster.com>2011-05-31 00:39:22 +0000
committerAnand Avati <avati@gluster.com>2011-05-31 09:12:32 -0700
commit82d794cac5f4875e52aa5337e2002466ec00256d (patch)
tree947e24e53b66ca3e05bbe837113dd3464ebcfa7e /xlators/features
parent6cfe22bf1533c8b7d4084a9963305384d1ca1902 (diff)
features/locks: Unwind with SUCCESS on non-blocking entrylk success
Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2949 (self-heal hangs) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2949
Diffstat (limited to 'xlators/features')
-rw-r--r--xlators/features/locks/src/entrylk.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/xlators/features/locks/src/entrylk.c b/xlators/features/locks/src/entrylk.c
index e58c1a2c378..9e7d4c87820 100644
--- a/xlators/features/locks/src/entrylk.c
+++ b/xlators/features/locks/src/entrylk.c
@@ -671,6 +671,7 @@ pl_common_entrylk (call_frame_t *frame, xlator_t *this,
break;
case ENTRYLK_LOCK_NB:
+ unwind = 1;
pthread_mutex_lock (&pinode->mutex);
{
ret = __lock_name (pinode, basename, type,
@@ -678,11 +679,11 @@ pl_common_entrylk (call_frame_t *frame, xlator_t *this,
}
pthread_mutex_unlock (&pinode->mutex);
- if (ret < 0)
+ if (ret < 0) {
op_errno = -ret;
+ goto out;
+ }
- unwind = 1;
- goto out;
break;
case ENTRYLK_UNLOCK: