mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Erez Zadok <ezk@cs.sunysb.edu>
To: Jan Kara <jack@suse.cz>
Cc: Erez Zadok <ezk@cs.sunysb.edu>, Andrew Morton <akpm@osdl.org>,
	"Josef 'Jeff' Sipek" <jsipek@cs.sunysb.edu>,
	linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	hch@infradead.org, viro@ftp.linux.org.uk, torvalds@osdl.org,
	mhalcrow@us.ibm.com, David Quigley <dquigley@cs.sunysb.edu>
Subject: Re: [PATCH 01/24] Unionfs: Documentation
Date: Tue, 9 Jan 2007 12:34:27 -0500	[thread overview]
Message-ID: <200701091734.l09HYRHB009290@agora.fsl.cs.sunysb.edu> (raw)
In-Reply-To: Your message of "Tue, 09 Jan 2007 13:26:45 +0100." <20070109122644.GB1260@atrey.karlin.mff.cuni.cz>

In message <20070109122644.GB1260@atrey.karlin.mff.cuni.cz>, Jan Kara writes:
> > In message <20070108111852.ee156a90.akpm@osdl.org>, Andrew Morton writes:
> > > On Sun,  7 Jan 2007 23:12:53 -0500
> > > "Josef 'Jeff' Sipek" <jsipek@cs.sunysb.edu> wrote:
> > > 
> > > > +Modifying a Unionfs branch directly, while the union is mounted, is
> > > > +currently unsupported.
> > > 
> > > Does this mean that if I have /a/b/ and /c/d/ unionised under /mnt/union, I
> > > am not allowed to alter anything under /a/b/ and /c/d/?  That I may only
> > > alter stuff under /mnt/union?
> > > 
> > > If so, that sounds like a significant limitation.
>   <snip>
> > Now, we've discussed a number of possible solutions.  Thanks to suggestions
> > we got at OLS, we discussed a way to hide the lower namespace, or make it
> > readonly, using existing kernel facilities.  But my understanding is that
> > even it'd work, it'd only address new processes: if an existing process has
> > an open fd in a lower branch before we "lock up" the lower branch's name
> > space, that process may still be able to make lower-level changes.
> > Detecting such processes may not be easy.  What to do with them, once
> > detected, is also unclear.  We welcome suggestions.
>   Yes, making fs readonly at VFS level would not work for already opened
> files. But you if you create new union, you could lock down the
> filesystems you are unioning (via s_umount semaphore), go through lists
> of all open fd's on those filesystems and check whether they are open
> for write or not. If some fd is open for writing, you simply fail to
> create the union (and it's upto user to solve the problem). Otherwise
> you mark filesystems as RO and safely proceed with creating the union.
> I guess you must have come up with this solution. So what is the problem
> with it?

Jan, all of it is duable: we can downgrade the f/s to readonly, grab various
locks, search through various lists looking for open fd's and such, then
decide if to allow the mount or not.  And hopefully all of that can be done
in a non-racy manner.  But it feels just rather hacky and ugly to me.  If
this community will endorse such a solution, we'll be happy to develop it.
But right now my impression is that if we posted such patches today, some
people will have to wipe the vomit off of their monitors... :-)

Seriously, can someone suggest a step-by-step procedure to handling this
issue, maybe even sprinkle some pseudo code there?  Is there a procedure
that is clean and acceptable to all?  We'd love to hear it.

> 								Honza
> -- 
> Jan Kara <jack@suse.cz>
> SuSE CR Labs

Thanks,
Erez.

  parent reply	other threads:[~2007-01-09 17:36 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-08  4:12 [PATCH 00/24] Unionfs, try #4 Josef 'Jeff' Sipek
2007-01-08  4:12 ` [PATCH 01/24] Unionfs: Documentation Josef 'Jeff' Sipek
2007-01-08 19:18   ` Andrew Morton
2007-01-08 19:43     ` Shaya Potter
2007-01-08 20:24       ` Jan Engelhardt
2007-01-08 21:32         ` Shaya Potter
2007-01-08 21:19       ` Andrew Morton
2007-01-08 21:30         ` Shaya Potter
2007-01-08 22:02           ` Andrew Morton
2007-01-08 22:21             ` Shaya Potter
2007-01-08 23:34             ` Jan Engelhardt
2007-01-08 23:37             ` Josef Sipek
2007-01-09  0:03             ` Erez Zadok
2007-01-09  9:53               ` Christoph Hellwig
2007-01-09 10:43                 ` Josef Sipek
2007-01-09 10:47                   ` Christoph Hellwig
2007-01-09 10:48                   ` Christoph Hellwig
2007-01-09 17:28                 ` Erez Zadok
2007-01-09 18:03                   ` Raz Ben-Jehuda(caro)
2007-01-09 18:24                     ` Erez Zadok
2007-01-08 23:25         ` Josef Sipek
2007-01-09  9:49           ` Christoph Hellwig
2007-01-09 10:36             ` Josef Sipek
2007-01-08 20:51     ` Erez Zadok
2007-01-08 21:53       ` Jan Engelhardt
2007-01-08 23:00       ` Michael Halcrow
2007-01-08 23:45         ` Josef Sipek
2007-01-09  0:19       ` Giuseppe Bilotta
2007-01-09  0:33         ` Josef Sipek
2007-01-09  1:26           ` Jan Engelhardt
2007-01-09  1:50             ` Shaya Potter
2007-01-09 12:26       ` Jan Kara
2007-01-09 16:39         ` Trond Myklebust
2007-01-09 17:04           ` Jan Kara
2007-01-09 17:07             ` Trond Myklebust
2007-01-09 17:34         ` Erez Zadok [this message]
2007-01-10 16:12           ` Jan Kara
2007-01-10 20:15             ` Erez Zadok
2007-01-10 20:24               ` Shaya Potter
2007-01-10 21:27               ` Jan Kara
2007-01-10 23:20             ` Josef Sipek
2007-01-10 23:29               ` Shaya Potter
2007-01-11  8:54                 ` Jan Kara
2007-01-08 23:15     ` Josef Sipek
2007-01-09 12:15       ` Jan Kara
2007-01-09 16:30         ` Trond Myklebust
2007-01-09 16:41           ` Shaya Potter
2007-01-09 17:03             ` Trond Myklebust
2007-01-09 17:11               ` Shaya Potter
2007-01-09 17:16               ` Erez Zadok
2007-01-09 17:16             ` Jan Kara
2007-01-09 22:02             ` Jan Engelhardt
2007-01-11 14:29           ` unionfs unusable on multiuser systems (was Re: [PATCH 01/24] Unionfs: Documentation) Pavel Machek
2007-01-12 14:17             ` Shaya Potter
2007-01-08  4:12 ` [PATCH 02/24] lookup_one_len_nd - lookup_one_len with nameidata argument Josef 'Jeff' Sipek
2007-01-08  4:12 ` [PATCH 03/24] Unionfs: Branch management functionality Josef 'Jeff' Sipek
2007-01-08  4:12 ` [PATCH 04/24] Unionfs: Common file operations Josef 'Jeff' Sipek
2007-01-08 21:28   ` Andrew Morton
2007-01-08  4:12 ` [PATCH 05/24] Unionfs: Copyup Functionality Josef 'Jeff' Sipek
2007-01-08 21:29   ` Andrew Morton
2007-01-08 22:00     ` Shaya Potter
2007-01-08  4:12 ` [PATCH 06/24] Unionfs: Dentry operations Josef 'Jeff' Sipek
2007-01-08 21:29   ` Andrew Morton
2007-01-08  4:12 ` [PATCH 07/24] Unionfs: File operations Josef 'Jeff' Sipek
2007-01-08  4:13 ` [PATCH 08/24] Unionfs: Directory file operations Josef 'Jeff' Sipek
2007-01-08  4:13 ` [PATCH 09/24] Unionfs: Directory manipulation helper functions Josef 'Jeff' Sipek
2007-01-08  4:13 ` [PATCH 10/24] Unionfs: Inode operations Josef 'Jeff' Sipek
2007-01-08  4:13 ` [PATCH 11/24] Unionfs: Lookup helper functions Josef 'Jeff' Sipek
2007-01-08  4:13 ` [PATCH 12/24] Unionfs: Main module functions Josef 'Jeff' Sipek
2007-01-08  4:13 ` [PATCH 13/24] Unionfs: Readdir state Josef 'Jeff' Sipek
2007-01-08  4:13 ` [PATCH 14/24] Unionfs: Rename Josef 'Jeff' Sipek
2007-01-08  4:13 ` [PATCH 15/24] Unionfs: Privileged operations workqueue Josef 'Jeff' Sipek
2007-01-08 21:27   ` Andrew Morton
2007-01-08  4:13 ` [PATCH 16/24] Unionfs: Handling of stale inodes Josef 'Jeff' Sipek
2007-01-08  4:13 ` [PATCH 17/24] Unionfs: Miscellaneous helper functions Josef 'Jeff' Sipek
2007-01-08  4:13 ` [PATCH 18/24] Unionfs: Superblock operations Josef 'Jeff' Sipek
2007-01-08 21:29   ` Andrew Morton
2007-01-08  4:13 ` [PATCH 19/24] Unionfs: Helper macros/inlines Josef 'Jeff' Sipek
2007-01-08 21:28   ` Andrew Morton
2007-01-09  9:02     ` mutex ownership (was: Re: [PATCH 19/24] Unionfs: Helper macros/inlines) Peter Zijlstra
2007-01-09  9:09       ` Oliver Neukum
2007-01-26 16:10         ` Steven Rostedt
2007-01-08  4:13 ` [PATCH 20/24] Unionfs: Internal include file Josef 'Jeff' Sipek
2007-01-08  4:13 ` [PATCH 21/24] Unionfs: Include file Josef 'Jeff' Sipek
2007-01-08  4:13 ` [PATCH 22/24] Unionfs: Unlink Josef 'Jeff' Sipek
2007-01-08  4:13 ` [PATCH 23/24] Unionfs: Kconfig and Makefile Josef 'Jeff' Sipek
2007-01-08  4:13 ` [PATCH 24/24] Unionfs: Extended Attributes support Josef 'Jeff' Sipek

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=200701091734.l09HYRHB009290@agora.fsl.cs.sunysb.edu \
    --to=ezk@cs.sunysb.edu \
    --cc=akpm@osdl.org \
    --cc=dquigley@cs.sunysb.edu \
    --cc=hch@infradead.org \
    --cc=jack@suse.cz \
    --cc=jsipek@cs.sunysb.edu \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mhalcrow@us.ibm.com \
    --cc=torvalds@osdl.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

all inboxes | Powered by JetHome®