summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libglusterfs/src/common-utils.h4
-rw-r--r--xlators/mount/fuse/src/fuse-bridge.c2
-rw-r--r--xlators/protocol/client/src/client-rpc-fops.c3
3 files changed, 7 insertions, 2 deletions
diff --git a/libglusterfs/src/common-utils.h b/libglusterfs/src/common-utils.h
index 057c4aeb8dc..235db5fe34b 100644
--- a/libglusterfs/src/common-utils.h
+++ b/libglusterfs/src/common-utils.h
@@ -287,6 +287,10 @@ int gf_set_log_ident (cmd_args_t *cmd_args);
if (gf_uuid_is_null (u))\
GF_ASSERT (!"uuid null");
+#define GF_IGNORE_IF_GSYNCD_SAFE_ERROR(frame, op_errno) \
+ (((frame->root->pid == GF_CLIENT_PID_GSYNCD) && \
+ (op_errno == EEXIST || op_errno == ENOENT))?0:1) \
+
union gf_sock_union {
struct sockaddr_storage storage;
struct sockaddr_in6 sin6;
diff --git a/xlators/mount/fuse/src/fuse-bridge.c b/xlators/mount/fuse/src/fuse-bridge.c
index d8e7012bb6c..74a84902fa5 100644
--- a/xlators/mount/fuse/src/fuse-bridge.c
+++ b/xlators/mount/fuse/src/fuse-bridge.c
@@ -1253,7 +1253,7 @@ fuse_err_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
state->loc.path ? state->loc.path : "ERR");
send_fuse_err (this, finh, 0);
- } else {
+ } else if (GF_IGNORE_IF_GSYNCD_SAFE_ERROR(frame, op_errno)) {
gf_log ("glusterfs-fuse", GF_LOG_WARNING,
"%"PRIu64": %s() %s => -1 (%s)",
frame->root->unique,
diff --git a/xlators/protocol/client/src/client-rpc-fops.c b/xlators/protocol/client/src/client-rpc-fops.c
index 55fd327da8e..55e8d47adc9 100644
--- a/xlators/protocol/client/src/client-rpc-fops.c
+++ b/xlators/protocol/client/src/client-rpc-fops.c
@@ -299,7 +299,8 @@ client3_3_mkdir_cbk (struct rpc_req *req, struct iovec *iov, int count,
rsp.op_errno, out);
out:
- if (rsp.op_ret == -1) {
+ if (rsp.op_ret == -1 &&
+ GF_IGNORE_IF_GSYNCD_SAFE_ERROR(frame, rsp.op_errno)) {
gf_log (this->name, GF_LOG_WARNING,
"remote operation failed: %s. Path: %s",
strerror (gf_error_to_errno (rsp.op_errno)),