All of lore.kernel.org
 help / color / mirror / Atom feed
From: "J. Bruce Fields" <bfields@redhat.com>
To: Marc Dionne <marc@your-file-system.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>,
	Christoph Hellwig <hch@infradead.org>,
	linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH 09/11] exportfs: update Exporting documentation
Date: Fri, 6 Jun 2014 17:20:06 -0400	[thread overview]
Message-ID: <20140606212006.GE29883@pad.redhat.com> (raw)
In-Reply-To: <CAB9dFdtqe4GoGkR9eYBoxORanOK170Sq5=QFJ6KFAW7cSbWevQ@mail.gmail.com>

On Thu, Jun 05, 2014 at 08:51:21AM -0400, Marc Dionne wrote:
> On Wed, Jun 4, 2014 at 5:21 PM, J. Bruce Fields <bfields@redhat.com> wrote:
> > From: "J. Bruce Fields" <bfields@redhat.com>
> >
> > Minor documentation updates:
> >         - refer to d_obtain_alias rather than d_alloc_anon
> >         - explain when to use d_splice_alias and when
> >           d_materialise_unique.
> >         - cut some details of d_splice_alias/d_materialise_unique
> >           implementation.
> >
> > Signed-off-by: J. Bruce Fields <bfields@redhat.com>
> > ---
> >  Documentation/filesystems/nfs/Exporting |   38 +++++++++++++++++++------------
> >  1 file changed, 23 insertions(+), 15 deletions(-)
> >
> > diff --git a/Documentation/filesystems/nfs/Exporting b/Documentation/filesystems/nfs/Exporting
> > index e543b1a..9b7de5b 100644
> > --- a/Documentation/filesystems/nfs/Exporting
> > +++ b/Documentation/filesystems/nfs/Exporting
> > @@ -66,23 +66,31 @@ b/ A per-superblock list "s_anon" of dentries which are the roots of
> >
> >  c/ Helper routines to allocate anonymous dentries, and to help attach
> >     loose directory dentries at lookup time. They are:
> > -    d_alloc_anon(inode) will return a dentry for the given inode.
> > +    d_obtain_alias(inode) will return a dentry for the given inode.
> >        If the inode already has a dentry, one of those is returned.
> >        If it doesn't, a new anonymous (IS_ROOT and
> >          DCACHE_DISCONNECTED) dentry is allocated and attached.
> >        In the case of a directory, care is taken that only one dentry
> >        can ever be attached.
> > -    d_splice_alias(inode, dentry) will make sure that there is a
> > -      dentry with the same name and parent as the given dentry, and
> > -      which refers to the given inode.
> > -      If the inode is a directory and already has a dentry, then that
> > -      dentry is d_moved over the given dentry.
> > -      If the passed dentry gets attached, care is taken that this is
> > -      mutually exclusive to a d_alloc_anon operation.
> > -      If the passed dentry is used, NULL is returned, else the used
> > -      dentry is returned.  This corresponds to the calling pattern of
> > -      ->lookup.
> > -
> > +    d_splice_alias(inode, dentry) or d_materialise_unique(dentry, inode)
> > +      will introduce a new dentry into the tree; either the passed-in
> > +      dentry or a preexisting alias for the given inode (such as an
> > +      anonymous one created by d_obtain_alias), if appropriate.  The two
> > +      functions differ in their handling of directories with preexisting
> > +      aliases:
> > +        d_splice_alias will use any existing IS_ROOT dentry, but it will
> > +         return -EIO rather than try to move a dentry with a different
> > +         parent.  This is appropriate for local filesystems, which
> > +         should never see such an alias unless the filesystem is
> > +         corrupted somehow (for example, if two on-disk directory
> > +         entries refer to the same directory.)
> > +       d_obtain_alias will attempt to move any dentry.  This is
> 
> Should this be d_materialise_unique instead of d_obtain_alias ?

Whoops, thanks for catching that.

Fixed in the version at

	git://linux-nfs.org/~bfields/linux-topics.git for-viro

--b.

  reply	other threads:[~2014-06-06 21:20 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-04 21:20 [PATCH 00/11] mainly d_splice_alias fixes J. Bruce Fields
2014-06-04 21:20 ` [PATCH 01/11] namei: trivial fix to vfs_rename_dir comment J. Bruce Fields
2014-06-04 21:20 ` [PATCH 02/11] dcache: move d_splice_alias J. Bruce Fields
2014-06-04 21:20 ` [PATCH 03/11] dcache: close d_move race in d_splice_alias J. Bruce Fields
2014-06-04 21:20 ` [PATCH 04/11] dcache: d_splice_alias mustn't create directory aliases J. Bruce Fields
2014-06-04 21:20 ` [PATCH 05/11] dcache: d_splice_alias should ignore DCACHE_DISCONNECTED J. Bruce Fields
2014-06-04 21:20 ` [PATCH 06/11] dcache: d_obtain_alias callers don't all want DISCONNECTED J. Bruce Fields
2014-06-04 21:20 ` [PATCH 07/11] dcache: remove unused d_find_alias parameter J. Bruce Fields
2014-06-04 21:21 ` [PATCH 08/11] dcache: d_find_alias needn't recheck IS_ROOT && DCACHE_DISCONNECTED J. Bruce Fields
2014-06-04 21:21 ` [PATCH 09/11] exportfs: update Exporting documentation J. Bruce Fields
2014-06-04 21:54   ` Bernd Schubert
2014-06-06 21:23     ` J. Bruce Fields
2014-06-05 12:51   ` Marc Dionne
2014-06-06 21:20     ` J. Bruce Fields [this message]
2014-06-04 21:21 ` [PATCH 10/11] dcache: d_materialise_unique isn't GPL-only J. Bruce Fields
2014-06-04 21:21 ` [PATCH 11/11] dcache: d_splice_alias should detect loops J. Bruce Fields

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=20140606212006.GE29883@pad.redhat.com \
    --to=bfields@redhat.com \
    --cc=hch@infradead.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=marc@your-file-system.com \
    --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.