Merge
diff --git a/Lib/posixpath.py b/Lib/posixpath.py
index e1d59b6..7362483 100644
--- a/Lib/posixpath.py
+++ b/Lib/posixpath.py
@@ -182,18 +182,24 @@
 
 def ismount(path):
     """Test whether a path is a mount point"""
-    if islink(path):
-        # A symlink can never be a mount point
-        return False
     try:
         s1 = os.lstat(path)
-        if isinstance(path, bytes):
-            parent = join(path, b'..')
-        else:
-            parent = join(path, '..')
+    except OSError:
+        # It doesn't exist -- so not a mount point. :-)
+        return False
+    else:
+        if stat.S_ISLNK(s1.st_mode):
+            return False
+
+    if isinstance(path, bytes):
+        parent = join(path, b'..')
+    else:
+        parent = join(path, '..')
+    try:
         s2 = os.lstat(parent)
     except OSError:
-        return False # It doesn't exist -- so not a mount point :-)
+        return False
+
     dev1 = s1.st_dev
     dev2 = s2.st_dev
     if dev1 != dev2:
diff --git a/Misc/NEWS b/Misc/NEWS
index 8bc78d1..2d970b9 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -162,6 +162,9 @@
 Library
 -------
 
+- Issue #18530: Remove additional stat call from posixpath.ismount.
+  Patch by Alex Gaynor.
+
 - Issue #18514: Fix unreachable Py_DECREF() call in PyCData_FromBaseObj()
 
 - Issue #9177: Calling read() or write() now raises ValueError, not