On Sun, May 13, 2018 at 10:26:12PM +0100, Al Viro wrote: > A lot of d_add() uses are in ->lookup() instances; > those really should be d_splice_alias() - that's mandatory > for anything exported (and we'd seen people not bothering > to convert when adding exports/open-by-fhandle support) *and* > it's not costlier than d_add() anyway, in all cases when > d_add() wouldn't have caused instant breakage. > > What's more, d_splice_alias() makes for simpler life > in callers - it does the right thing when given ERR_PTR(), > which simplifies the logics in quite a few ->lookup() instances. > > There are trickier cases, but a bunch of those call > sites are completely straightforward. See followups, or > vfs.git#work.lookup Continuation of the series - more simple cases: openpromfs: switch to d_splice_alias() orangefs_lookup: simplify omfs_lookup(): report IO errors, use d_splice_alias() hfs: use d_splice_alias() hfs: don't allow mounting over .../rsrc hfsplus: switch to d_splice_alias() ncp_lookup(): use d_splice_alias() 9p: unify paths in v9fs_vfs_lookup() cifs_lookup(): cifs_get_inode_...() never returns 0 with *inode left NULL cifs_lookup(): switch to d_splice_alias()