summaryrefslogtreecommitdiffstats
path: root/xlators/features/marker/src/marker.c
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/features/marker/src/marker.c')
-rw-r--r--xlators/features/marker/src/marker.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/xlators/features/marker/src/marker.c b/xlators/features/marker/src/marker.c
index 4a50d275a89..e82016fcadc 100644
--- a/xlators/features/marker/src/marker.c
+++ b/xlators/features/marker/src/marker.c
@@ -414,6 +414,21 @@ marker_filter_internal_xattrs (xlator_t *this, dict_t *xattrs)
dict_foreach_match (xattrs, _is_quota_internal_xattr, ext,
dict_remove_foreach_fn, NULL);
+}
+
+static void
+marker_filter_gsyncd_xattrs (call_frame_t *frame,
+ xlator_t *this, dict_t *xattrs)
+{
+ marker_conf_t *priv = NULL;
+
+ priv = this->private;
+ GF_ASSERT (priv);
+
+ if (frame->root->pid != GF_CLIENT_PID_GSYNCD &&
+ dict_get(xattrs, priv->marker_xattr)) {
+ dict_del (xattrs, priv->marker_xattr);
+ }
return;
}
@@ -423,7 +438,6 @@ marker_getxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
dict_t *xdata)
{
int32_t ret = -1;
-
if (op_ret < 0)
goto unwind;
@@ -459,6 +473,9 @@ marker_getxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
marker_filter_internal_xattrs (frame->this, dict);
}
+ /* Filter gsyncd xtime xattr for non gsyncd clients */
+ marker_filter_gsyncd_xattrs (frame, frame->this, dict);
+
unwind:
MARKER_STACK_UNWIND (getxattr, frame, op_ret, op_errno, dict, xdata);
return 0;