All of lore.kernel.org
 help / color / mirror / Atom feed
* "mount -o remount,rw" sometimes doesn't work as expected.
@ 2017-05-19  7:14 NeilBrown
  2017-05-19  9:11 ` Karel Zak
  0 siblings, 1 reply; 7+ messages in thread
From: NeilBrown @ 2017-05-19  7:14 UTC (permalink / raw)
  To: util-linux

[-- Attachment #1: Type: text/plain, Size: 1926 bytes --]



Suppose /foo and /bar are bind mounts to the same
filesystem which is currently mounted read-only,
and suppose the /etc/fstab contains

  /dev/sda1 /bar ext4 defaults 0 1
  /bar /foo none bind 0 0

Now if I want /foo to be writeable I might try:

  mount /foo -o remount,rw

and would then be surprised that this doesn't work.

What is happening is that because only one path has been given, mount
needs to find the other and goes looking in /etc/fstab.
If finds an appropriate line and parses out the options.
Then the mount system call used is

 mount( "/bar", "/foo", ..., MS_REMOUNT | MS_BIND ,....)

This changes the per-mountpoint ro flag to rw, but doesn't change the
filesystem itself.  This can be seen in /proc/self/mountinfo.  There
are two r[wo] flags, and they are different.

Had I run:

  mount /foo -o remount,bind,rw

I would have expected this.  But as I didn't explicitly ask for "bind",
it is confusing.

I think it might be good to ignore "bind" in /etc/fstab when "remount"
is used.
However.... when "remount" is used, the "device" is ignored, so there
isn't a lot of point hunting through /etc/fstab to find it.
If mount is given just one path and the "remount" option, then maybe
it shouldn't try to find an /etc/fstab entry at all?
I guess you might want to remount a device??
Is
   mount -o remount,rw /dev/sda1
allowed?  In that case, don't look through /etc/fstab if the path
is a directory.

I haven't provided a patch because I'm not 100% sure what the best
approach would be.
Does anyone have opinions on what mount should or shouldn't do when
remounting and only one path is given?

You could possibly argue that the current behaviour is correct
as /foo is listed as bind mount.  That doesn't stop is being surprising.
Also
   mount /bar /foo -o remount,rw

doesn't pick up the "bind" flag, so the filesystem gets remounted.
So I think there is definitely something wrong.

Thanks,
NeilBrown

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-05-31 22:55 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-19  7:14 "mount -o remount,rw" sometimes doesn't work as expected NeilBrown
2017-05-19  9:11 ` Karel Zak
2017-05-21 22:16   ` NeilBrown
2017-05-22 11:26     ` Karel Zak
2017-05-31  3:05       ` NeilBrown
2017-05-31  9:18         ` Karel Zak
2017-05-31 22:55           ` NeilBrown

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.