On Tue, Mar 21, 2017 at 8:02 PM, Linus Torvalds
[off-list ref] wrote:
On Tue, Mar 21, 2017 at 11:44 AM, Omar Sandoval [off-list ref] wrote:
quoted
This is actually the exact same check we have in vfs_rename():
Hmm. That looks bogus too exactly due to the overlayfs issues. Oh
well. I guess people don't actually use overlayfs and care.
What overlayfs issues? Overlayfs behaves exactly like a normal
filesystem wrt negative dentries.
If you are referring to whiteouts, they are not visible on the overlay
layer (remember overlay duplicates the dentry tree of the merged
dentry trees of the underlying layers).
quoted
I tried to keep the same semantics as rename().
Ok, it does seem to match the non-exchange rename(), which I guess is
what we want. It does worry me a bit that we only check for
"may_delete()" even though we end up replacing it with a new one, but
apparently those semantics indeed aren't new.
I think this is historic. may_delete() was doing the same as
may_create() and more. Doesn't look like that's still strictly true,
so it might make sense to add a may_replace() operation that does
both.
Thanks,
Miklos