Can confirm, ran into this issue. It's because os.path.ismount() works by checking if the path's parent is on a different device (e.g. st_dev is the same for 'path/' and 'path/..'), which obviously it is for a bind mount on the same filesystem.
It is actually documented that this is how it works (https://docs.python.org/2/library/os.path.html#os.path.ismount) but it's more of a passing comment than a warning, and who reads the docs for such an apparently simple function anyway? ;)
Agree that it should be fixed by parsing /proc/mounts instead of the current mess, perhaps using getmntent(3) and friends. |