linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dave Hansen <haveblue@us.ibm.com>
To: Al Viro <viro@ftp.linux.org.uk>
Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	herbert@13thfloor.at
Subject: Re: [RFC][PATCH 20/20] honor r/w changes at do_remount() time
Date: Mon, 19 Jun 2006 09:45:18 -0700	[thread overview]
Message-ID: <1150735518.10515.46.camel@localhost.localdomain> (raw)
In-Reply-To: <20060618183616.GA27946@ftp.linux.org.uk>

On Sun, 2006-06-18 at 19:36 +0100, Al Viro wrote:
> On Fri, Jun 16, 2006 at 04:12:28PM -0700, Dave Hansen wrote:
> > 
> > Originally from: Herbert Poetzl <herbert@13thfloor.at>
> > 
> > This is the core of the read-only bind mount patch set.
> > 
> > Note that this does _not_ add a "ro" option directly to
> > the bind mount operation.  If you require such a mount,
> > you must first do the bind, then follow it up with a
> > 'mount -o remount,ro' operation.
> 
> Hrm...  So you want r/o status of vfsmount completely independent from
> that of superblock?  I.e. allow writable vfsmount over r/o filesystem?
> I realize that we have double checks, but...

I think it does make sense to keep them separate.  I think of the
superblock flag is really there to describe the state of the filesystem.
Are we even _able_ to write to this thing now?

The vfsmount flag, on the other hand, spells out the intentions of the
person who _did_ the mount.  Do I _want_ this to be writable?  

Let's say that we eliminate the superblock r/o flag.  There's a
filesystem with one regular vfsmount, one r/o bind vfsmount, and one r/w
bind vfsmount.  It encounters an error.  Not having a superblock flag,
we must go find each vfsmount and mark it r/o (this also enlarges the
window during which the f/s might be written).

Now, the administrator decides that the fs is OK, and remounts it r/w.
The vfsmounts should obviously regain their original permissions, any
other behavior is pretty screwy.  To accomplish this, we need both a
"current write state" and a "previous write state", which probably means
a new flag in the vfsmount.

So, we've fanned out this "current state" information from the
superblock, increased the window of fs damage, and added some complexity
when we do the transitions between the states.  I think I like the way
it is now. :)

-- Dave


  reply	other threads:[~2006-06-19 16:45 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-16 23:12 [RFC][PATCH 00/20] Mount writer count and read-only bind mounts (v2) Dave Hansen
2006-06-16 23:12 ` [RFC][PATCH 01/20] prepare for write access checks: collapse if() Dave Hansen
2006-06-16 23:12 ` [RFC][PATCH 02/20] r/o bind mount prepwork: move open_namei()'s vfs_create() Dave Hansen
2006-06-16 23:12 ` [RFC][PATCH 03/20] Add vfsmount writer count Dave Hansen
2006-06-18 18:33   ` Al Viro
2006-06-19 17:02     ` Dave Hansen
2006-06-20 21:20       ` Al Viro
2006-06-22 17:01         ` Dave Hansen
2006-06-16 23:12 ` [RFC][PATCH 04/20] elevate mnt writers for callers of vfs_mkdir() Dave Hansen
2006-06-16 23:12 ` [RFC][PATCH 05/20] elevate write count during entire ncp_ioctl() Dave Hansen
2006-06-16 23:12 ` [RFC][PATCH 06/20] sys_symlinkat() elevate write count around vfs_symlink() Dave Hansen
2006-06-16 23:12 ` [RFC][PATCH 07/20] elevate mount count for extended attributes Dave Hansen
2006-06-16 23:12 ` [RFC][PATCH 08/20] sys_linkat(): elevate write count around vfs_link() Dave Hansen
2006-06-16 23:12 ` [RFC][PATCH 09/20] mount_is_safe(): add comment Dave Hansen
2006-06-16 23:12 ` [RFC][PATCH 11/20] elevate write count over calls to vfs_rename() Dave Hansen
2006-06-18 18:23   ` Al Viro
2006-06-19 17:18     ` Dave Hansen
2006-06-16 23:12 ` [RFC][PATCH 10/20] unix_find_other() elevate write count for touch_atime() Dave Hansen
2006-06-16 23:12 ` [RFC][PATCH 12/20] tricky: elevate write count files are open()ed Dave Hansen
2006-06-16 23:12 ` [RFC][PATCH 13/20] elevate writer count for do_sys_truncate() Dave Hansen
2006-06-16 23:12 ` [RFC][PATCH 14/20] elevate write count for do_utimes() Dave Hansen
2006-06-16 23:12 ` [RFC][PATCH 15/20] elevate write count for do_sys_utime() and touch_atime() Dave Hansen
2006-06-16 23:12 ` [RFC][PATCH 16/20] sys_mknodat(): elevate write count for vfs_mknod/create() Dave Hansen
2006-06-16 23:12 ` [RFC][PATCH 17/20] elevate mnt writers for vfs_unlink() callers Dave Hansen
2006-06-16 23:12 ` [RFC][PATCH 19/20] elevate writer count for custom 'struct file' Dave Hansen
2006-06-16 23:12 ` [RFC][PATCH 18/20] do_rmdir(): elevate write count Dave Hansen
2006-06-16 23:12 ` [RFC][PATCH 20/20] honor r/w changes at do_remount() time Dave Hansen
2006-06-18 18:36   ` Al Viro
2006-06-19 16:45     ` Dave Hansen [this message]
2006-06-16 23:29 ` [RFC][PATCH 00/20] Mount writer count and read-only bind mounts (v2) Grzegorz Kulewski
2006-06-16 23:41   ` Dave Hansen
2006-06-17  0:10     ` Grzegorz Kulewski
2006-06-17  3:35       ` Herbert Poetzl
2006-06-17  9:36         ` Jan Engelhardt
2006-06-17 13:29           ` Herbert Poetzl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1150735518.10515.46.camel@localhost.localdomain \
    --to=haveblue@us.ibm.com \
    --cc=herbert@13thfloor.at \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=viro@ftp.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).