linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nick Piggin <npiggin@suse.de>
To: David Howells <dhowells@redhat.com>
Cc: Nick Piggin <npiggin@suse.de>,
	viro@ZenIV.linux.org.uk, linux-fsdevel@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [RFC][PATCH] Add a dentry op to handle automounting rather than abusing follow_link
Date: Fri, 23 Jul 2010 00:57:38 +1000	[thread overview]
Message-ID: <20100722145738.GA5752@amd> (raw)
In-Reply-To: <30811.1279802187@redhat.com>

On Thu, Jul 22, 2010 at 01:36:27PM +0100, David Howells wrote:
> Nick Piggin <npiggin@suse.de> wrote:
> 
> > > AFS is made to use this facility so that it can be tested.  Other
> > > filesystems abusing the follow_mount() inode operation will also need to
> > > be modified.
> 
> I meant follow_link() here of course...  Too many followy things:-)
> 
> > How about having a .follow_mount op, and using that instead of
> > default follow_mount in case mounted is incremented?
> 
> But what if d_mounted is not incremented, though?

Nothing?


>  That's usually the point
> you'd want to call the automount code.

I think you have it the wrong way around. If you wanted to call
the automount code, you would have incremented d_mounted.


>  Why would you want to call into the
> filesystem just to skip over possibly mounted dentries?  A dentry may have an
> elevated d_mount on it, but nothing mounted at that {vfsmount,dentry} point I
> suppose, but still jumping into the filesystem just so it can skip an already
> mounted point would seem a waste of time.

Those that don't care wouldn't set ->follow_mount though.
Following a mount is a fairly heavy operation already, it
does take a global lock (before vfs scalability patches,
anyway).

I like the flexibility of doing one's own ->follow_mount,
although Al might object to allowing filesystems to follow
mounts in ways that are not published to the core
namespace structures.

 
> > Also I would prefer the patch to add this call
> 
> Meaning i_op->follow_mount()?

Either one, just make the follow_mount/__follow_mount API
changes in one patch, and add the callback in another.

 
> > keep basically the same API as follow_mount, so if you are going to change
> > that to return an error and do the NOFOLLOW handling in there, then could
> > you do that first, as a more trivial patch?
> 
> Ummm...  I'm not sure I follow you.  I changed __follow_mount() not
> follow_mount().  I don't think changing the latter is necessary.

I meant __follow_mount.

 
> > Then your addition of the d_op should not touch outside *follow_mount.
> 
> But calling i_op->follow_mount() would, so what does this gain you?  And why
> not touch the inside of __follow_mount()?
> 
> Are you suggesting doing i_op->follow_mount() instead of or as well as
> d_op->d_automount()?  I'm not entirely sure.

Two suggestions. Firstly a d_op->d_follow_mount() (does following
a mount even make sense at the inode level?)

Secondly, just simply to split the patch so you change the
__follow_mount API in namespace first.

  reply	other threads:[~2010-07-22 14:57 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-13 21:55 [RFC][PATCH] Add a dentry op to handle automounting rather than abusing follow_link David Howells
2010-07-13 22:48 ` [RFC][PATCH] xstat: Add an AT_NO_AUTOMOUNT flag to suppress terminal automount David Howells
2010-07-22  4:15 ` [RFC][PATCH] Add a dentry op to handle automounting rather than abusing follow_link Nick Piggin
2010-07-22 12:36 ` David Howells
2010-07-22 14:57   ` Nick Piggin [this message]
2010-07-22 15:33   ` David Howells
2010-07-22 16:04   ` David Howells

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=20100722145738.GA5752@amd \
    --to=npiggin@suse.de \
    --cc=dhowells@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=viro@ZenIV.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).