Messages in this thread | | | Date | Fri, 17 Jan 2014 16:26:55 -0500 | From | "J. Bruce Fields" <> | Subject | Re: [PATCH] dcache: fix d_splice_alias handling of aliases |
| |
On Fri, Jan 17, 2014 at 04:03:43PM -0500, J. Bruce Fields wrote: > - d_splice_alias handles inode == NULL in the same way,
Actually, not exactly; simplifying a bit, in the NULL case they do:
d_splice_alias:
__d_instantiate(dentry, NULL); security_d_instantiate(dentry, NULL); if (d_unhashed(dentry)) d_rehash(dentry);
d_materialise_unique:
BUG_ON(!d_unhashed(dentry));
__d_instantiate(dentry, NULL); d_rehash(dentry); security_d_instantiate(dentry, NULL);
and a comment on d_splice_alias says
Cluster filesystems may call this function with a negative, hashed dentry. In that case, we know that the inode will be a regular file, and also this will only occur during atomic_open.
I don't understand those callers. But I guess it would be easy enough to handle in d_materialise_unique.
--b.
| |