diff options
| -rw-r--r-- | geo-replication/syncdaemon/resource.py | 2 | ||||
| -rw-r--r-- | geo-replication/syncdaemon/syncdutils.py | 22 | 
2 files changed, 11 insertions, 13 deletions
diff --git a/geo-replication/syncdaemon/resource.py b/geo-replication/syncdaemon/resource.py index c669f7f7756..a2d0b16899a 100644 --- a/geo-replication/syncdaemon/resource.py +++ b/geo-replication/syncdaemon/resource.py @@ -579,6 +579,8 @@ class Server(object):                      logging.info(lf("Special case: rename on mkdir",                                      gfid=gfid, entry=repr(entry)))                      src_entry = get_slv_dir_path(slv_host, slv_volume, gfid) +                    if src_entry is None: +                        collect_failure(e, ENOENT, uid, gid)                      if src_entry is not None and src_entry != entry:                          slv_entry_info = {}                          slv_entry_info['gfid_mismatch'] = False diff --git a/geo-replication/syncdaemon/syncdutils.py b/geo-replication/syncdaemon/syncdutils.py index fd96ca70b2f..2d1e107eec1 100644 --- a/geo-replication/syncdaemon/syncdutils.py +++ b/geo-replication/syncdaemon/syncdutils.py @@ -683,19 +683,15 @@ def get_slv_dir_path(slv_host, slv_volume, gfid):                                 gfid[2:4],                                 gfid], [ENOENT], [ESTALE])          if dir_path != ENOENT: -            break - -    if not isinstance(dir_path, int): -        realpath = errno_wrap(os.readlink, [dir_path], -                              [ENOENT], [ESTALE]) - -        if not isinstance(realpath, int): -            realpath_parts = realpath.split('/') -            pargfid = realpath_parts[-2] -            basename = realpath_parts[-1] -            pfx = gauxpfx() -            dir_entry = os.path.join(pfx, pargfid, basename) -            return dir_entry +            realpath = errno_wrap(os.readlink, [dir_path], +                                  [ENOENT], [ESTALE]) +            if not isinstance(realpath, int): +                realpath_parts = realpath.split('/') +                pargfid = realpath_parts[-2] +                basename = realpath_parts[-1] +                pfx = gauxpfx() +                dir_entry = os.path.join(pfx, pargfid, basename) +                return dir_entry      return None  | 
