Al Viro <viro@xxxxxxxxxxxxxxxxxx> writes: > On Fri, Aug 28, 2020 at 10:40:35PM +0200, Florian Margaine wrote: >> There's currently this seemingly unnecessary limitation that rename() >> cannot work over bind mounts of the same filesystem, > > ... is absolutely deliberate - that's how you set a boundary in the > tree, preventing both links and renames across it. Sorry, I'm not not sure I understand what you're saying. As I understand it, the tree is the superblock there, not the mount. As in, the dentries are relative to the superblock, and the mountpoint is no more than a pointer to a superblock's dentry. In addition, I noticed this snippet in fs/read_write.c: /* * FICLONE/FICLONERANGE ioctls enforce that src and dest files are on * the same mount. Practically, they only need to be on the same file * system. */ if (file_inode(file_in)->i_sb != file_inode(file_out)->i_sb) return -EXDEV; Which seems to confirm my understanding. What am I getting wrong there? > > Incidentally, doing that would have fun effects for anyone with current > directory inside the subtree you'd moved - try and see.
Attachment:
signature.asc
Description: PGP signature