Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Jul 2017 21:12:30 +0100
From:      Edward Tomasz Napierala <trasz@freebsd.org>
To:        rgrimes@freebsd.org
Cc:        Ian Lepore <ian@freebsd.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r320803 - head/sbin/mount
Message-ID:  <20170711201230.GB1725@brick>
In-Reply-To: <201707081734.v68HYpN9068500@pdx.rh.CN85.dnsmgr.net>
References:  <20170708171641.GA1129@brick> <201707081734.v68HYpN9068500@pdx.rh.CN85.dnsmgr.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 0708T1034, Rodney W. Grimes wrote:
> [ Charset ISO-8859-1 unsupported, converting... ]
> > On 0708T1102, Ian Lepore wrote:
> > > On Sat, 2017-07-08 at 09:50 -0700, Rodney W. Grimes wrote:
> > > > [ Charset UTF-8 unsupported, converting... ]
> > > > > 
> > > > > Author: trasz
> > > > > Date: Sat Jul??8 11:06:27 2017
> > > > > New Revision: 320803
> > > > > URL: https://svnweb.freebsd.org/changeset/base/320803
> > > > > 
> > > > > Log:
> > > > > ? 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.
> > > > Please do not silence user errors because they are inconvinient,
> > > > this is a configuration error and the system should fail to?
> > > > mount the incorrectly configured root.
> > > > 
> > > > If we start changing things to silently ignore user configuration
> > > > errors we are going down a very slippery road.
> > 
> > It doesn't silence down the error.  What it does is it makes it possible
> > to use "mount -uw /" - previously it would fail in a rather nonsensical
> > way, by calling "mount_nfs -o upgrade,rw /dev/ada0 /".
> 
> It DOES silence the error.  My configuration TOLD it to execute that
> rather nonsensical command, your change now causes it to execute something
> that my configuration did NOT tell it to do.

I don't know your configuration; mine certainly didn't tell it to try to
mount /dev/ada0 as NFS.  What I certainly _did_ told it was to "mount -uw /",
and previously, in some cases, it failed to do this.  Now it works.

>From a practical standpoint, it's like this: I have an NFS root filesystem
mounted read-only.  There's a slightly wrong fstab.  I want to remount it
read-write and fix it.  With UFS I can.  I expect the same with NFS.

> > > IMO, this change fixes the right problem, but maybe does so the wrong
> > > way. ?Mount -u is by definition an update to an existing mount. ?There
> > > should be no need to consult /etc/fstab for an existing mount since the
> > > info is available from the kernel.
> > > 
> > > Note that I say the foregoing with my user hat on. ?I haven't looked at
> > > the code to see if there's some reason why my common-sensical way of
> > > thinking about it is actually impossible to implement for some reason.
> > 
> > I wouldn't expect it to consult fstab either, to be honest.  But it does,
> > and I suspect changing that would break someone's config.
> 
> It reads the fstab to get the options that may be specified there
> that your mount -uw / command does not specify, realize the kernel
> when mounting / does so in a very minimal way, when you invoke
> mount -u the parameters in /etc/fstab come in to play.

Yup, that's it.  So it is right in most cases - it's just that the hack
for "/" case sometimes worked in an way that's pretty obviously wrong
(using the fstab value for "mounted from", but ignoring the filesystem
type), although didn't hurt before reroot, because it could never happen.

> I believe KIB refered to this during your differential when he said
> something like "what if the options disagree".

Possibly.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20170711201230.GB1725>