[PATCH 00/20] Mount writer count and read-only bind mounts (v3)



I think these are ready for -mm. They've gone through a few revisions
and a week or two of normal burn-in testing.

---

The following series implements read-only bind mounts. This feature
allows a read-only view into a read-write filesystem. In the process
of doing that, it also provides infrastructure for keeping track of
the number of writers to any given mount. New in this version is that
if that number is non-zero, remounts from r/w to r/o are not allowed.

This set does not take the previously tried approach of pushing down
the vfsmount structure deeply into call paths, such that it might be
checked in functions like permission(), may_create() and may_open().
Instead, it does checks near the entry points in the kernel, bumping
a reference count in the vfsmount structure. I've also eliminated
the use of the MNT_RDONLY flag. It was redundant since we have the
reference count.

This set also makes no attempt to keep the return codes for these
r/o bind mounts the same as for a real r/o filesystem or device.
It would require significantly more code and be quite a bit more
invasive. Unless there is a very strong reason to do so, I believe
it isn't worth the trouble.

One note: the previous patches all worked this way:

mount --bind -o ro /source /dest

These patches have changed that behavior. It now requires two steps:

mount --bind /source /dest
mount -o remount,ro /dest

Since the last revision, the locking in faccessat() and
mnt_is_readonly() has been changed to fix a race which might have
caused a false-negative mount-is-readonly return when faccessat()
is called while another two processes are racing to make a mount
readonly.

Signed-off-by: Dave Hansen <haveblue@xxxxxxxxxx>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • Re: [PATCH 00/20] Mount writer count and read-only bind mounts (v3)
    ... These patches have changed that behavior. ... r/w and the bind is requested to be r/o. ... is called while another two processes are racing to make a mount ... Mostly for vserver, for now. ...
    (Linux-Kernel)
  • Re: How to tell if the filesystem is RO?
    ... but is there a better way to tell if the filesystem is R/O? ... You could parse the output of "mount" or use one of the -X filetests to ...
    (comp.lang.perl.misc)
  • Re: [PATCH 00/20] Mount writer count and read-only bind mounts (v3)
    ... The following series implements read-only bind mounts. ... the number of writers to any given mount. ... remounts from r/w to r/o are not allowed. ...
    (Linux-Kernel)
  • Re: Panic on mount with write-locked USB media (umass)
    ... >There are two ways that a filesystem correctly could handle a R/O ... Note that EROFS is not a documented return code for mount. ... >have to check if it got the mount it wanted or not. ... It's a pity there isn't provision for a "partially successful" exit ...
    (freebsd-current)
  • Re: Patch installation
    ... #mount -o remount,ro /usr ... remount works only with currently mounted r/o file systems. ... You must reboot your system if you want it r/o again. ...
    (comp.unix.admin)