diff options
Diffstat (limited to 'geo-replication/syncdaemon/master.py')
| -rw-r--r-- | geo-replication/syncdaemon/master.py | 10 | 
1 files changed, 10 insertions, 0 deletions
diff --git a/geo-replication/syncdaemon/master.py b/geo-replication/syncdaemon/master.py index a7a46e37764..c17e6a2ff38 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)  | 
