# Re: \[PATCH\]\[RFC\] open\_tree(2) (was Re: \[PATCH 30/32\] vfs: Allow cloning of a mount tree with open(O\_PATH\|O\_CLONE\_MOUNT) \[ver \#8\])

- From: Al Viro \<viro@ZenIV.linux.org.uk\>
- Date: 2018-06-04 15:52:11 
- List: linux-api
- Page: https://ratatoskr.run/linux-api/2018/06/139189
- Thread: https://ratatoskr.run/linux-fsdevel/2018/05/135893/t.md

```text
On Mon, Jun 04, 2018 at 12:34:44PM +0200, Miklos Szeredi wrote:

> fsopen = create fsfd
> fsmount = fsfd -> mountfd & set attr on mountfd & attach mountfd
> fspick = path -> fsfd
> move_mount = attach mountfd or move existing
> fsinfo = info from path
> open_tree = new mountfd from path or clone
> mount_setattr = set attr on mountfd
> 
> Notice that fsmount() encompasses mount_setattr() + move_mount()
> functionality.   Split those out and leave fsmount() to actually do
> the "fsfd ->mountfd" translation?

Might make sense.

> fsinfo() name suggests it's in the same class as
> fsopen/fsmount/fspick, operating on fsfd object, but's it's not and I
> think that's slightly confusing.
> 
> Rename move_mount() -> mount_move()?

mount_move_bikeshed_bikeshed_bikeshed(), surely?

> Also does it make sense to make the cloning behavior of open_tree()
> optional?  Without cloning it's just a plain open(O_PATH).  That  way
> it could be renamed mount_clone().

Umm...  I'm not sure about that one.  If nothing else, OPEN_TREE_DETACH
might be a good idea, in which case cloning is not the primary effect;
hell knows.
```
