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:
Edward Tomasz Napierala 2017-07-08 11:06:27 +00:00
parent 2ca5f390c4
commit 1f3aded066
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=320803

View File

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