diff mbox

kdbus: create /sys/fs/kdbus with sysfs_create_mount_point()

Message ID 1439558503-1749-1-git-send-email-lkundrak@v3.sk (mailing list archive)
State New, archived
Headers show

Commit Message

Lubomir Rintel Aug. 14, 2015, 1:21 p.m. UTC
Since 0cbee99269 user-namespace pull, if a kdbusfs is mounted on a
location that's not created with sysfs_create_mount_point the user
namespaces are not allowed to mount their sysfs instances.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
---
Applies on top of char-misc/kdbus a36324913.

 ipc/kdbus/main.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

Comments

David Herrmann Aug. 17, 2015, 5:23 p.m. UTC | #1
Hi

On Fri, Aug 14, 2015 at 3:21 PM, Lubomir Rintel <lkundrak@v3.sk> wrote:
> Since 0cbee99269 user-namespace pull, if a kdbusfs is mounted on a
> location that's not created with sysfs_create_mount_point the user
> namespaces are not allowed to mount their sysfs instances.
>
> Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
> ---
> Applies on top of char-misc/kdbus a36324913.

This does not apply on top of char-misc/kdbus. The tree lacks the
necessary commits. But yeah, it's required for 4.2. I'll keep it
starred until Greg back-merges 4.2.

Anyway, this is still: Reviewed-by: David Herrmann <dh.herrmann@gmail.com>

Thanks!
David

>  ipc/kdbus/main.c | 13 +++++--------
>  1 file changed, 5 insertions(+), 8 deletions(-)
>
> diff --git a/ipc/kdbus/main.c b/ipc/kdbus/main.c
> index 1ad4dc8..c2117ea 100644
> --- a/ipc/kdbus/main.c
> +++ b/ipc/kdbus/main.c
> @@ -75,16 +75,13 @@
>   *  '» struct kdbus_ep *ep (owned)
>   */
>
> -/* kdbus mount-point /sys/fs/kdbus */
> -static struct kobject *kdbus_dir;
> -
>  static int __init kdbus_init(void)
>  {
>         int ret;
>
> -       kdbus_dir = kobject_create_and_add(KBUILD_MODNAME, fs_kobj);
> -       if (!kdbus_dir)
> -               return -ENOMEM;
> +       ret = sysfs_create_mount_point(fs_kobj, KBUILD_MODNAME);
> +       if (ret)
> +               return ret;
>
>         ret = kdbus_fs_init();
>         if (ret < 0) {
> @@ -96,14 +93,14 @@ static int __init kdbus_init(void)
>         return 0;
>
>  exit_dir:
> -       kobject_put(kdbus_dir);
> +       sysfs_remove_mount_point(fs_kobj, KBUILD_MODNAME);
>         return ret;
>  }
>
>  static void __exit kdbus_exit(void)
>  {
>         kdbus_fs_exit();
> -       kobject_put(kdbus_dir);
> +       sysfs_remove_mount_point(fs_kobj, KBUILD_MODNAME);
>         ida_destroy(&kdbus_node_ida);
>  }
>
> --
> 2.4.3
>
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Josh Boyer Aug. 17, 2015, 8:52 p.m. UTC | #2
On Mon, Aug 17, 2015 at 1:23 PM, David Herrmann <dh.herrmann@gmail.com> wrote:
> Hi
>
> On Fri, Aug 14, 2015 at 3:21 PM, Lubomir Rintel <lkundrak@v3.sk> wrote:
>> Since 0cbee99269 user-namespace pull, if a kdbusfs is mounted on a
>> location that's not created with sysfs_create_mount_point the user
>> namespaces are not allowed to mount their sysfs instances.
>>
>> Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
>> ---
>> Applies on top of char-misc/kdbus a36324913.
>
> This does not apply on top of char-misc/kdbus. The tree lacks the
> necessary commits. But yeah, it's required for 4.2. I'll keep it
> starred until Greg back-merges 4.2.
>
> Anyway, this is still: Reviewed-by: David Herrmann <dh.herrmann@gmail.com>

Grumble.  Keeping track of this is getting to be somewhat of a pain.
Why isn't the kdbus-next branch already at 4.2?

So if one was carrying the contents of char-misc/kdbus as stand-alone
patches on top of 4.2-rc7, should your Reviewed-by count as "yes,
apply this patch in that instance?"

josh
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/ipc/kdbus/main.c b/ipc/kdbus/main.c
index 1ad4dc8..c2117ea 100644
--- a/ipc/kdbus/main.c
+++ b/ipc/kdbus/main.c
@@ -75,16 +75,13 @@ 
  *  '» struct kdbus_ep *ep (owned)
  */
 
-/* kdbus mount-point /sys/fs/kdbus */
-static struct kobject *kdbus_dir;
-
 static int __init kdbus_init(void)
 {
 	int ret;
 
-	kdbus_dir = kobject_create_and_add(KBUILD_MODNAME, fs_kobj);
-	if (!kdbus_dir)
-		return -ENOMEM;
+	ret = sysfs_create_mount_point(fs_kobj, KBUILD_MODNAME);
+	if (ret)
+		return ret;
 
 	ret = kdbus_fs_init();
 	if (ret < 0) {
@@ -96,14 +93,14 @@  static int __init kdbus_init(void)
 	return 0;
 
 exit_dir:
-	kobject_put(kdbus_dir);
+	sysfs_remove_mount_point(fs_kobj, KBUILD_MODNAME);
 	return ret;
 }
 
 static void __exit kdbus_exit(void)
 {
 	kdbus_fs_exit();
-	kobject_put(kdbus_dir);
+	sysfs_remove_mount_point(fs_kobj, KBUILD_MODNAME);
 	ida_destroy(&kdbus_node_ida);
 }