Last minute proposal for fs track. This is something that's been on my mind for a while and I was wondering if others have interest in something like this. The idea is to declare a directory as a root of a subtree from which inodes cannot escape via rename/link. The implementation could rely on lock_rename() traversing ancestors under s_vfs_rename_mutex and not allowing to cross a rename fence. The easiest way to enforce same restriction for link() is to require lock_rename() for links. I am not sure if this would cause performance issues in any real workloads? The possible users for such a facility are: - Overlayfs declaring lower dir as rename fence as means to circumvent possible attack vectors - Shiftfs declaring mark point as rename fence as means to circumvent possible attack vectors - Basis for fsnotify subtree watch (*) (*) I have implemented super block watch and got lots of feedback from people waiting for this feature, but what they really want is usually subtree watch and maybe willing to settle for super block watch. subtree watch would also be useful for VFS level snapshots (a.k.a overlayfs snapshots). Project ids, implemented in xfs and ext4 already provide a somewhat similar functionality, mainly used to maintain quotas for subtrees, but files inside a subtrees are allowed to change project id, so its not the exact same thing and of course VFS has no knowledge of project ids. There is some unused space in directory dentry taken by the redundancy of the d_alias "list" that must contain a single inode, that could be used to describe the VFS fences/ zones topology. Thoughs? flames? Thanks, Amir.