cpython: 240adc564539 (original) (raw)
Mercurial > cpython
changeset 84791:240adc564539
Fix #18530. Remove extra stat call from posixpath.ismount [#18530]
Brian Curtin brian@python.org | |
---|---|
date | Mon, 22 Jul 2013 13:07:52 -0500 |
parents | 84d6c1c0665e |
children | ffe9d73b5f8d |
files | Lib/posixpath.py Misc/NEWS |
diffstat | 2 files changed, 17 insertions(+), 8 deletions(-)[+] [-] Lib/posixpath.py 22 Misc/NEWS 3 |
line wrap: on
line diff
--- a/Lib/posixpath.py +++ b/Lib/posixpath.py @@ -182,18 +182,24 @@ def lexists(path): def ismount(path): """Test whether a path is a mount point"""
- if islink(path):
# A symlink can never be a mount point[](#l1.8)
try: s1 = os.lstat(path)return False[](#l1.9)
if isinstance(path, bytes):[](#l1.12)
parent = join(path, b'..')[](#l1.13)
else:[](#l1.14)
parent = join(path, '..')[](#l1.15)
- except OSError:
# It doesn't exist -- so not a mount point. :-)[](#l1.17)
return False[](#l1.18)
- else:
if stat.S_ISLNK(s1.st_mode):[](#l1.20)
return False[](#l1.21)
- if isinstance(path, bytes):
parent = join(path, b'..')[](#l1.24)
- else:
parent = join(path, '..')[](#l1.26)
- try: s2 = os.lstat(parent) except OSError:
return False # It doesn't exist -- so not a mount point :-)[](#l1.30)
return False[](#l1.31)
+ dev1 = s1.st_dev dev2 = s2.st_dev if dev1 != dev2:
--- a/Misc/NEWS +++ b/Misc/NEWS @@ -162,6 +162,9 @@ Core and Builtins Library ------- +- Issue #18530: Remove additional stat call from posixpath.ismount.