From: Al Viro <viro@ZenIV.linux.org.uk>
To: Christoph Hellwig <hch@lst.de>
Cc: linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH 05/15] freevxfs_lookup(): use d_splice_alias()
Date: Mon, 14 May 2018 16:26:11 +0100 [thread overview]
Message-ID: <20180514152611.GF30522@ZenIV.linux.org.uk> (raw)
In-Reply-To: <20180514084102.GA21222@lst.de>
On Mon, May 14, 2018 at 10:41:02AM +0200, Christoph Hellwig wrote:
> On Sun, May 13, 2018 at 10:30:07PM +0100, Al Viro wrote:
> > From: Al Viro <viro@zeniv.linux.org.uk>
> >
> > Cc: Christoph Hellwig <hch@lst.de>
> > Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
>
> It looks a little cleaner, so this is fine, but is there also any
> other reason? A little changelog would be nice.
The same changelog would be duplicated in a bunch of commits in that
series and I'm not sure how much is too much. Let me put it that
way:
* d_splice_alias() has better calling conventions for use
in ->lookup() - it tends to reduce the number of branches nicely.
* d_add() in ->lookup() is no-go for anything exportable;
we did conversion for exported stuff back then, and it's documented
in Documentation/filesystems/nfs/Exporting, but people fail to RTFM
when converting more filesystems to exportability. Preempting that
kind of bugs is a good idea.
* the fewer stray d_add() we have sitting around, the better -
each needs a proof that this particular invocation won't end up with
multiple aliases of a directory inode. d_splice_alias() is *NOT*
a universal replacement, but in a lot of ->lookup() instances we can
use it sanely; it can't be done quite blindly (the stuff that hangs
something off the dentry needs a careful look), but most of the time
it's fine - on any filesystem that doesn't play with ->d_fsdata, for
starters. And in all cases such replacement in ->lookup() is
"it's no worse than before" - it's just that some cases need more
than just that conversion before they can be made exportable (see
e.g. 9p for example of that kind of extra work;
res = d_splice_alias(inode, dentry);
if (!res)
v9fs_fid_add(dentry, fid);
else if (!IS_ERR(res))
v9fs_fid_add(res, fid);
else
p9_client_clunk(fid);
in there, when we need to decide which dentry to slap the fid onto)
The bunch in this series is the trivial part of conversions. Next
group is where a bit more attention is needed and the last is procfs
nest of horrors.
I'm honestly not sure how much of the above makes sense as a boilerplate
to go into all those commits. Suggestions?
next prev parent reply other threads:[~2018-05-14 15:26 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-13 21:26 [RFC][PATCHES] reducing d_add() use, part 1 Al Viro
2018-05-13 21:30 ` [PATCH 01/15] bfs_lookup(): use d_splice_alias() Al Viro
2018-05-13 21:30 ` [PATCH 02/15] bfs_find_entry: pass name/len as qstr pointer Al Viro
2018-05-13 21:30 ` [PATCH 03/15] bfs_add_entry: " Al Viro
2018-05-13 21:30 ` [PATCH 04/15] cramfs_lookup(): use d_splice_alias() Al Viro
2018-05-13 21:30 ` [PATCH 05/15] freevxfs_lookup(): " Al Viro
2018-05-14 8:41 ` Christoph Hellwig
2018-05-14 15:26 ` Al Viro [this message]
2018-05-13 21:30 ` [PATCH 06/15] minix_lookup: " Al Viro
2018-05-13 21:30 ` [PATCH 07/15] qnx4_lookup: " Al Viro
2018-05-14 10:48 ` Anders Larsen
2018-05-13 21:30 ` [PATCH 08/15] sysv_lookup: " Al Viro
2018-05-14 8:41 ` Christoph Hellwig
2018-05-13 21:30 ` [PATCH 09/15] ubifs_lookup: " Al Viro
2018-05-14 6:48 ` Richard Weinberger
2018-05-13 21:30 ` [PATCH 10/15] qnx6_lookup: switch to d_splice_alias() Al Viro
2018-05-13 21:30 ` [PATCH 11/15] romfs_lookup: hash negative lookups, use d_splice_alias() Al Viro
2018-05-13 21:30 ` [PATCH 12/15] adfs_lookup_byname: .. *is* taken care of in fs/namei.c Al Viro
2018-05-13 21:30 ` [PATCH 13/15] adfs_lookup: do not fail with ENOENT on negatives, use d_splice_alias() Al Viro
2018-05-13 21:30 ` [PATCH 14/15] xfs_vn_lookup: simplify a bit Al Viro
2018-05-14 8:41 ` Christoph Hellwig
2018-05-13 21:30 ` [PATCH 15/15] openpromfs: switch to d_splice_alias() Al Viro
2018-05-16 9:45 ` [PATCH 01/15] bfs_lookup(): use d_splice_alias() Tigran Aivazian
2018-05-25 23:53 ` [RFC][PATCHES] reducing d_add() use, part 2 Al Viro
2018-05-25 23:54 ` [PATCH 01/10] openpromfs: switch to d_splice_alias() Al Viro
2018-05-25 23:54 ` [PATCH 02/10] orangefs_lookup: simplify Al Viro
2018-05-31 18:23 ` Mike Marshall
2018-05-25 23:54 ` [PATCH 03/10] omfs_lookup(): report IO errors, use d_splice_alias() Al Viro
2018-05-25 23:54 ` [PATCH 04/10] hfs: " Al Viro
2018-05-25 23:54 ` [PATCH 05/10] hfs: don't allow mounting over .../rsrc Al Viro
2018-05-25 23:54 ` [PATCH 06/10] hfsplus: switch to d_splice_alias() Al Viro
2018-05-25 23:54 ` [PATCH 07/10] ncp_lookup(): use d_splice_alias() Al Viro
2018-05-25 23:54 ` [PATCH 08/10] 9p: unify paths in v9fs_vfs_lookup() Al Viro
2018-05-25 23:54 ` [PATCH 09/10] cifs_lookup(): cifs_get_inode_...() never returns 0 with *inode left NULL Al Viro
2018-05-25 23:54 ` [PATCH 10/10] cifs_lookup(): switch to d_splice_alias() Al Viro
2018-05-26 0:03 ` [RFC][PATCHES] reducing d_add() use, part 3 (procfs) Al Viro
2018-05-26 0:04 ` [PATCH 1/5] procfs: get rid of ancient BS in pid_revalidate() uses Al Viro
2018-05-26 0:04 ` [PATCH 2/5] proc_lookupfd_common(): don't bother with instantiate unless the file is open Al Viro
2018-05-26 0:04 ` [PATCH 3/5] don't bother with tid_fd_revalidate() in lookups Al Viro
2018-05-26 0:04 ` [PATCH 4/5] procfs: switch instantiate_t to d_splice_alias() Al Viro
2018-05-26 0:04 ` [PATCH 5/5] switch the rest of procfs lookups " Al Viro
2018-05-31 8:28 ` [PATCH 1/5] procfs: get rid of ancient BS in pid_revalidate() uses Alexey Dobriyan
2018-05-26 13:07 ` [RFC][PATCHES] reducing d_add() use, part 3 (procfs) Alexey Dobriyan
2018-05-26 13:56 ` Alexey Dobriyan
2018-05-26 18:20 ` Al Viro
2018-05-26 18:38 ` Matthew Wilcox
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=20180514152611.GF30522@ZenIV.linux.org.uk \
--to=viro@zeniv.linux.org.uk \
--cc=hch@lst.de \
--cc=linux-fsdevel@vger.kernel.org \
/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.