[PATCH] kexec-tools: find sysfs smarter
Josef Bacik
jbacik at fb.com
Wed Jun 1 13:26:38 PDT 2016
Some systems may not have /etc/mtab, so fall back to using /proc/mounts if we
fail to open /etc/mtab. Also if a user does
mount -t sysfs none /sys
we won't find the sysfs directory. We need to check mnt->mnt_type, not
mnt->mnt_fsname.
Signed-off-by: Josef Bacik <jbacik at fb.com>
---
kexec/arch/i386/x86-linux-setup.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/kexec/arch/i386/x86-linux-setup.c b/kexec/arch/i386/x86-linux-setup.c
index c75adaa..c24abaa 100644
--- a/kexec/arch/i386/x86-linux-setup.c
+++ b/kexec/arch/i386/x86-linux-setup.c
@@ -425,10 +425,13 @@ char *find_mnt_by_fsname(char *fsname)
char *mntdir;
mtab = setmntent("/etc/mtab", "r");
- if (!mtab)
- return NULL;
+ if (!mtab) {
+ mtab = setmntent("/proc/mounts", "r");
+ if (!mtab)
+ return NULL;
+ }
for(mnt = getmntent(mtab); mnt; mnt = getmntent(mtab)) {
- if (strcmp(mnt->mnt_fsname, fsname) == 0)
+ if (strcmp(mnt->mnt_type, fsname) == 0)
break;
}
mntdir = mnt ? strdup(mnt->mnt_dir) : NULL;
--
2.5.0
More information about the kexec
mailing list