xfs
[Top] [All Lists]

Re: Don't use d_alloc_anon for open_by_handle

To: Niv Sardi <xaiki@xxxxxxx>
Subject: Re: Don't use d_alloc_anon for open_by_handle
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Mon, 5 May 2008 05:53:16 -0400
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>, xfs-dev@xxxxxxx, xfs@xxxxxxxxxxx
In-reply-to: <ncczlr5b6pt.fsf@sgi.com>
References: <20080501070244.GH108924158@sgi.com> <1209693339-4861-1-git-send-email-xaiki@sgi.com> <20080502060654.GA23912@infradead.org> <ncczlr5b6pt.fsf@sgi.com>
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Mutt/1.5.17 (2007-11-01)
On Mon, May 05, 2008 at 04:33:34PM +1000, Niv Sardi wrote:
> >
> > No, this is even more buggy than using d_alloc_anon.
> 
> I must be missing a point here, can you please further explain why is it
> buggy ? We are indeed abusing the normal dentry life, but that's what we
> want libhandle to be. i.e. We really don't need it connected, we don't
> need to know anything about that file, we just want to access it.
> 
> > What really needs to be done in the handle code is to do the full
> > reconnect logic nfsd would be doing. 
> 
> That would be slow, and we don't really need it. What is wrong with
> having a temp hanging dentry if it gets thorn appart properly ? The
> dentry we're using never makes it to any kind of cache. We don't even
> have security concerns as the 2 pieces of code can only be triggered by
> root.

It shouldn't be slow.  You'd do the equivalent no_subtree check export
without parent fh, so what we do is call the fh_to_dentry method
and then call find_acceptable_alias to check if there's already an
dentry around and if yes use that one.  That latter part is what should
fix your problem.  If you want to be lazy you could just copy
find_acceptable_alias into the xfs code and call it directly and let me
clean up the mess later..


<Prev in Thread] Current Thread [Next in Thread>