Fix "mount -uw /" when the filesystem type doesn't match.

This basically makes "mount -uw /" work when the filesystem
mounted on / is NFS, but the one configured in fstab(5) is UFS,
which can happen when you forget to modify fstab.

Note that the whole special case ("else if (argv[0][0] == '/'")
is probably not needed anyway.  I'll take a look at removing it
altogether; for now this is a minimally intrusive fix.

MFC after:	2 weeks
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D11323
This commit is contained in:
trasz 2017-07-08 11:06:27 +00:00
parent c30b6bb1ad
commit e84d63bc1c

View File

@ -398,7 +398,9 @@ main(int argc, char *argv[])
have_fstab = 1;
mntfromname = mntbuf->f_mntfromname;
} else if (argv[0][0] == '/' &&
argv[0][1] == '\0') {
argv[0][1] == '\0' &&
strcmp(fs->fs_vfstype,
mntbuf->f_fstypename) == 0) {
fs = getfsfile("/");
have_fstab = 1;
mntfromname = fs->fs_spec;