summaryrefslogtreecommitdiffstats
path: root/geo-replication/syncdaemon/master.py
diff options
context:
space:
mode:
Diffstat (limited to 'geo-replication/syncdaemon/master.py')
-rw-r--r--geo-replication/syncdaemon/master.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/geo-replication/syncdaemon/master.py b/geo-replication/syncdaemon/master.py
index a7a46e377..c17e6a2ff 100644
--- a/geo-replication/syncdaemon/master.py
+++ b/geo-replication/syncdaemon/master.py
@@ -1184,6 +1184,13 @@ class GMasterXsyncMixin(GMasterChangelogMixin):
if stime and stime[-1]:
self.sync_stime(stime[-1], last)
+ def is_sticky(self, path, mo):
+ """check for DHTs linkto sticky bit file"""
+ sticky = False
+ if mo & 01000:
+ sticky = self.master.server.linkto_check(path)
+ return sticky
+
def Xcrawl(self, path='.', xtr_root=None):
"""
generate a CHANGELOG file consumable by process_change.
@@ -1235,6 +1242,9 @@ class GMasterXsyncMixin(GMasterChangelogMixin):
if isinstance(st, int):
logging.warn('%s got purged in the interim ...' % e)
continue
+ if self.is_sticky(e, st.st_mode):
+ logging.debug('ignoring sticky bit file %s' % e)
+ continue
gfid = self.master.server.gfid(e)
if isinstance(gfid, int):
logging.warn('skipping entry %s..' % e)