All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.