Thread (88 messages) 88 messages, 14 authors, 2020-08-21

Re: file metadata via fs API (was: [GIT PULL] Filesystem Information)

flat view

From: Al Viro <viro@zeniv.linux.org.uk>
Date: 2020-08-12 16:34:07
Also in: linux-fsdevel, linux-security-module, lkml

On Wed, Aug 12, 2020 at 05:13:14PM +0200, Miklos Szeredi wrote:
quoted
Lovely.  And what of fchdir() to those?
Not allowed.
Not allowed _how_?  Existing check is "is it a directory"; what do you
propose?  IIRC, you've mentioned using readdir() in that context, so
it's not that you only allow to open the leaves there.
quoted
quoted
quoted
Is that a flat space, or can they be directories?"
Yes it has a directory tree.   But you can't mkdir, rename, link,
symlink, etc on anything in there.
That kills the "shared inode" part - you'll get deadlocks from
hell that way.
No.  The shared inode is not for lookup, just for the open file.
Bloody hell...  So what inodes are you using for lookups?  And that
thing you would be passing to readdir() - what inode will _that_ have?
quoted
Next: what will that tree be attached to?  As in, "what's the parent
of its root"?  And while we are at it, what will be the struct mount
used with those - same as the original file, something different
attached to it, something created on the fly for each pathwalk and
lazy-umounted?  And see above re fchdir() - if they can be directories,
it's very much in the game.
Why does it have to have a struct mount?  It does not have to use
dentry/mount based path lookup.
What the fuck?  So we suddenly get an additional class of objects
serving as kinda-sorta analogues of dentries *AND* now struct file
might refer to that instead of a dentry/mount pair - all on the VFS
level?  And so do all the syscalls you want to allow for such "pathnames"?

Sure, that avoids all questions about dcache interactions - by growing
a replacement layer and making just about everything in fs/namei.c,
fs/open.c, etc. special-case the handling of that crap.

But yes, the syscall-level interface will be simple.  Wonderful.

I really hope that's not what you have in mind, though.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help