NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/52056: mount -u / causes a kernel assertion




> On Mar 10, 2017, at 6:00 PM, Robert Elz <kre%munnari.OZ.AU@localhost> wrote:
> 
> In messages related to PR  kern/52056 (in gnats) and on netbsd-bugs@n.o
> (I am adding current-users as this needs opinions from a wider community).
> 
> The PR is mostly about kernel issues, this issue with mount -u is only
> relevant because that happened to trigger the kernel, if -u worked
> differently, the actual problem from the PR might not have been noticed.
> 
>    Date:        Fri, 10 Mar 2017 15:00:13 +0100
>    From:        =?UTF-8?B?SmFyb23DrXIgRG9sZcSNZWs=?= <jaromir.dolecek%gmail.com@localhost>
>    Message-ID:  <CAMnsW54zJHN1Kj_-bg8HJ11WSfFzcy9XT0Ebap52GJCRL3fMQQ%mail.gmail.com@localhost>
> 
>  | Some volunteer for checking why the -u doesn't work as advertized?
> 
> The issue is that the man page (mount(8)) says that -u takes options from
> fstab, then the command line -o options, and then -r or -w - but the code
> does not do that, fstab options are ignored with -u, only options from the
> command line are used.
> 
> It kind of seems to be deliberate - though I have no idea why.
> 
> Back in the early days (until mid 1994) it seems to have worked as the
> man page states - the relevant text in the man page has been essentially
> unchanged since version 1.1.    When 4.4-lite was incorporated in June 1994
> the code changed, and the following lines appeared ...
> 
>            /* If it's an update, ignore the fstab file options. */
>            fs->fs_mntops = NULL;
> 
> (in the code processing the -u case).   The code was restructured in 1998,
> but this was not altered in substance - the comment was deleted though.
> 
> It has remained essentially unchanged ever since.
> 
> So, it appears that 4.4-lite made this change, and apparently intentionally,
> but I have no idea why.
> 
> Changing it is trivial, if that is desired.   The question now is, which
> should be fixed, the man page, or the code?
> 
> One last thing that's interesting, back in Nov 1997, a correction to the
> man page has this as its commit log message ...
> 
>    Add a clarification how the missing data are looked up if either
>    mount source or target are omitted. Adresses PR 3240.
>    XXX This is not the complete truth. Things change with the -u
>    option. Should be fixed in "mount.c".
> 
> The actual change that commit made is not relevant here, but the XXX
> note indicates that way back then this issue was known, and at least one
> developer thought it should be fixed in the source.
> 
> So, does anyone believe that we should change the man page, and note that
> options from fstab are ignored with -u, or should the code be changed so
> that it works as the man page has (always) advertised (but which it hasn't
> done for the past (almost) 23 years.)
> 
> kre
> 

What do the other BSDs do in this case?


Home | Main Index | Thread Index | Old Index