"mount -o remount,rw" sometimes doesn't work as expected.

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

 




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: signature.asc
Description: PGP signature


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux