diff mercurial/posix.py @ 26889:1aa5083cbebb stable 3.6.1

posix: fix test-permissions regression
author Matt Mackall <mpm@selenic.com>
date Mon, 09 Nov 2015 15:53:11 -0600
parents c750ed59892a
children 0e3d093c468e
line wrap: on
line diff
--- a/mercurial/posix.py	Sun Nov 08 01:10:52 2015 +0800
+++ b/mercurial/posix.py	Mon Nov 09 15:53:11 2015 -0600
@@ -182,14 +182,16 @@
                 # link creation might race, try again
                 if inst[0] == errno.EEXIST:
                     continue
-                # sshfs might report failure while successfully creating the link
-                if inst[0] == errno.EIO and os.path.exists(name):
-                    os.unlink(name)
-                return False
+                raise
             finally:
                 fd.close()
         except AttributeError:
             return False
+        except OSError as inst:
+            # sshfs might report failure while successfully creating the link
+            if inst[0] == errno.EIO and os.path.exists(name):
+                os.unlink(name)
+            return False
 
 def checkosfilename(path):
     '''Check that the base-relative path is a valid filename on this platform.