Fix bug lp:1248625 by reading /etc/mtab when mountinfo is not present.
This commit is contained in:
parent
675336fe0d
commit
318d527055
@ -1737,6 +1737,15 @@ def parse_mount_info(path, mountinfo_lines, log=LOG):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def parse_mtab(path):
|
||||||
|
"""On older kernels there's no /proc/$$/mountinfo, so use mtab."""
|
||||||
|
for line in load_file("/etc/mtab").splitlines():
|
||||||
|
devpth, mount_point, fs_type = line.split()[:3]
|
||||||
|
if mount_point == path:
|
||||||
|
return devpth, fs_type, mount_point
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
def get_mount_info(path, log=LOG):
|
def get_mount_info(path, log=LOG):
|
||||||
# Use /proc/$$/mountinfo to find the device where path is mounted.
|
# Use /proc/$$/mountinfo to find the device where path is mounted.
|
||||||
# This is done because with a btrfs filesystem using os.stat(path)
|
# This is done because with a btrfs filesystem using os.stat(path)
|
||||||
@ -1767,8 +1776,11 @@ def get_mount_info(path, log=LOG):
|
|||||||
# So use /proc/$$/mountinfo to find the device underlying the
|
# So use /proc/$$/mountinfo to find the device underlying the
|
||||||
# input path.
|
# input path.
|
||||||
mountinfo_path = '/proc/%s/mountinfo' % os.getpid()
|
mountinfo_path = '/proc/%s/mountinfo' % os.getpid()
|
||||||
lines = load_file(mountinfo_path).splitlines()
|
if os.path.exists(mountinfo_path):
|
||||||
return parse_mount_info(path, lines, log)
|
lines = load_file(mountinfo_path).splitlines()
|
||||||
|
return parse_mount_info(path, lines, log)
|
||||||
|
else:
|
||||||
|
return parse_mtab(path)
|
||||||
|
|
||||||
|
|
||||||
def which(program):
|
def which(program):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user