From 3af42583dd804371952d61e9d7ff4c640e67ba0d Mon Sep 17 00:00:00 2001 From: Vijay Bellur Date: Sun, 12 Jan 2014 22:39:14 +0530 Subject: storage/posix: UNWIND right op_error and op_errno in *setxattr() 1. errno was being set after gf_log() in posix_{f}handle_pair, this would cause errno to be overwritten. 2. dht would expect -1 for indication of failure in setxattr callback (dht_err_cbk()). posix_{f}setxattr has been changed to set op_ret as -1 instead of -op_errno. 3. dict_foreach() has been changed to return an error if the invoked fn() returns < 0. Bug report and test case credits to Zorro Lang Change-Id: I96c15f12a5d7717b7584ba392f390a0b4f704a98 BUG: 1051896 Signed-off-by: Vijay Bellur Reviewed-on: http://review.gluster.org/6684 Tested-by: Gluster Build System Reviewed-by: Niels de Vos Reviewed-by: Anand Avati --- libglusterfs/src/dict.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'libglusterfs') diff --git a/libglusterfs/src/dict.c b/libglusterfs/src/dict.c index f2df5a6d4..e9fc1222d 100644 --- a/libglusterfs/src/dict.c +++ b/libglusterfs/src/dict.c @@ -1121,8 +1121,8 @@ dict_foreach (dict_t *dict, while (pairs) { next = pairs->next; ret = fn (dict, pairs->key, pairs->value, data); - if (ret == -1) - return -1; + if (ret < 0) + return ret; pairs = next; } -- cgit