Thread (33 messages) read the whole thread 33 messages, 6 authors, 2014-12-01

Re: kdbus: add node and filesystem implementation

From: David Herrmann <hidden>
Date: 2014-11-21 16:53:14
Also in: lkml

Hi

On Fri, Nov 21, 2014 at 5:35 PM, Andy Lutomirski [off-list ref] wrote:
On Thu, Nov 20, 2014 at 9:02 PM, Greg Kroah-Hartman
[off-list ref] wrote:
quoted
From: Daniel Mack <redacted>

kdbusfs is a filesystem that will expose a fresh kdbus domain context
each time it is mounted. Per mount point, there will be a 'control'
node, which can be used to create buses. fs.c contains the
implementation of that pseudo-fs. Exported inodes of 'file' type have
their i_fop set to either kdbus_handle_control_ops or
kdbus_handle_ep_ops, depending on their type. The actual dispatching
of file operations is done from handle.c

node.c is an implementation of a kdbus object that has an id and
children, organized in an R/B tree. The tree is used by the filesystem
code for lookup and iterator functions, and to deactivate children
once the parent is deactivated. Every inode exported by kdbusfs is
backed by a kdbus_node, hence it is embedded in struct kdbus_ep,
struct kdbus_bus and struct kdbus_domain.

Signed-off-by: Daniel Mack <redacted>
Signed-off-by: David Herrmann <redacted>
Signed-off-by: Djalal Harouni <tixxdz-Umm1ozX2/EEdnm+yROfE0A@public.gmane.org>
Signed-off-by: Greg Kroah-Hartman <redacted>
---
quoted
+
+static struct file_system_type fs_type = {
+       .name           = KBUILD_MODNAME "fs",
+       .owner          = THIS_MODULE,
+       .mount          = fs_super_mount,
+       .kill_sb        = fs_super_kill,
+};
Does this want something like:

.fs_flags = FS_USERNS_MOUNT
Yes, we should add that. Nice catch!
This design may have the annoying property that, if a namespace-based
sandbox wants to use kdbus itself, it will need to proxy anything from
the parent that it wants to use.

Is there a good reason why individual *busses* don't show up in the
filesystem?  If they did, maybe they could be bind-mounted or
otherwise arranged to cross namespace boundaries.
Buses show up as directories in kdbusfs. You can bind-mount them
anywhere you want and you will get access to the endpoints in there.

Thanks
David
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help