On Wed, Jul 23, 2025 at 05:58:01PM +0000, Viacheslav Dubeyko wrote: > So, this line simply copies CNID from old_dentry->d_fsdata to > new_dentry->d_fsdata during the rename operation. I assume that > ->fs_data should be untouched by generic logic of dentries processing. Yes, I understand that; what I do not understand is why. Why would the CNID of renamed object be slapped on dentry of removed target? I'm trying to understand the logics with link(2) and unlink-of-opened in that code... Incidentally, what happens if you fd = creat("foo", 0666); write(fd, "foo", 3); link("foo", "bar"); unlink("bar"); close(fd); The games with S_DEAD in there look odd...