netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Christian Brauner <christian.brauner@ubuntu.com>
Cc: "David S. Miller" <davem@davemloft.net>,
	linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Pavel Machek <pavel@ucw.cz>, Jakub Kicinski <kuba@kernel.org>,
	Eric Dumazet <edumazet@google.com>,
	Stephen Hemminger <stephen@networkplumber.org>,
	linux-pm@vger.kernel.org
Subject: Re: [PATCH net-next v3 3/9] sysfs: add sysfs_group{s}_change_owner()
Date: Thu, 20 Feb 2020 12:15:50 +0100	[thread overview]
Message-ID: <20200220111550.GE3374196@kroah.com> (raw)
In-Reply-To: <20200218162943.2488012-4-christian.brauner@ubuntu.com>

On Tue, Feb 18, 2020 at 05:29:37PM +0100, Christian Brauner wrote:
> Add helpers to change the owner of sysfs groups.
> This function will be used to correctly account for kobject ownership
> changes, e.g. when moving network devices between network namespaces.
> 
> Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
> ---
> /* v2 */
> -  Greg Kroah-Hartman <gregkh@linuxfoundation.org>:
>    - Add comment how ownership of sysfs object is changed.
> 
> /* v3 */
> -  Greg Kroah-Hartman <gregkh@linuxfoundation.org>:
>    - Add explicit uid/gid parameters.
> - Christian Brauner <christian.brauner@ubuntu.com>:
>   - Collapse groups ownership helper patches into a single patch.
> ---
>  fs/sysfs/group.c      | 117 ++++++++++++++++++++++++++++++++++++++++++
>  include/linux/sysfs.h |  20 ++++++++
>  2 files changed, 137 insertions(+)
> 
> diff --git a/fs/sysfs/group.c b/fs/sysfs/group.c
> index c4ab045926b7..bae562d3cba1 100644
> --- a/fs/sysfs/group.c
> +++ b/fs/sysfs/group.c
> @@ -13,6 +13,7 @@
>  #include <linux/dcache.h>
>  #include <linux/namei.h>
>  #include <linux/err.h>
> +#include <linux/fs.h>
>  #include "sysfs.h"
>  
>  
> @@ -457,3 +458,119 @@ int __compat_only_sysfs_link_entry_to_kobj(struct kobject *kobj,
>  	return PTR_ERR_OR_ZERO(link);
>  }
>  EXPORT_SYMBOL_GPL(__compat_only_sysfs_link_entry_to_kobj);
> +
> +static int sysfs_group_attrs_change_owner(struct kernfs_node *grp_kn,
> +					  const struct attribute_group *grp,
> +					  struct iattr *newattrs)
> +{
> +	struct kernfs_node *kn;
> +	int error;
> +
> +	if (grp->attrs) {
> +		struct attribute *const *attr;
> +
> +		for (attr = grp->attrs; *attr; attr++) {
> +			kn = kernfs_find_and_get(grp_kn, (*attr)->name);
> +			if (!kn)
> +				return -ENOENT;
> +
> +			error = kernfs_setattr(kn, newattrs);
> +			kernfs_put(kn);
> +			if (error)
> +				return error;
> +		}
> +	}
> +
> +	if (grp->bin_attrs) {
> +		struct bin_attribute *const *bin_attr;
> +
> +		for (bin_attr = grp->bin_attrs; *bin_attr; bin_attr++) {
> +			kn = kernfs_find_and_get(grp_kn, (*bin_attr)->attr.name);
> +			if (!kn)
> +				return -ENOENT;
> +
> +			error = kernfs_setattr(kn, newattrs);
> +			kernfs_put(kn);
> +			if (error)
> +				return error;
> +		}
> +	}
> +
> +	return 0;
> +}
> +
> +/**
> + * sysfs_group_change_owner - change owner of an attribute group.
> + * @kobj:	The kobject containing the group.
> + * @grp:	The attribute group.
> + * @kuid:	new owner's kuid
> + * @kgid:	new owner's kgid
> + *
> + * Returns 0 on success or error code on failure.

This is fine to document, just funny it's the only one documented about
the return value so far in this series.

Anyway, looks good to me:

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

  reply	other threads:[~2020-02-20 11:15 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-18 16:29 [PATCH net-next v3 0/9] net: fix sysfs permssions when device changes network Christian Brauner
2020-02-18 16:29 ` [PATCH net-next v3 1/9] sysfs: add sysfs_file_change_owner{_by_name}() Christian Brauner
2020-02-20 11:10   ` Greg Kroah-Hartman
2020-02-20 11:11   ` Greg Kroah-Hartman
2020-02-20 11:20   ` Greg Kroah-Hartman
2020-02-24 13:08     ` Christian Brauner
2020-02-18 16:29 ` [PATCH net-next v3 2/9] sysfs: add sysfs_link_change_owner() Christian Brauner
2020-02-20 11:14   ` Greg Kroah-Hartman
2020-02-20 19:51     ` Christian Brauner
2020-02-18 16:29 ` [PATCH net-next v3 3/9] sysfs: add sysfs_group{s}_change_owner() Christian Brauner
2020-02-20 11:15   ` Greg Kroah-Hartman [this message]
2020-02-20 19:38     ` Christian Brauner
2020-02-18 16:29 ` [PATCH net-next v3 4/9] sysfs: add sysfs_change_owner() Christian Brauner
2020-02-20 11:23   ` Greg Kroah-Hartman
2020-02-20 20:13     ` Christian Brauner
2020-02-18 16:29 ` [PATCH net-next v3 5/9] device: add device_change_owner() Christian Brauner
2020-02-20 11:25   ` Greg Kroah-Hartman
2020-02-24 13:18     ` Christian Brauner
2020-02-18 16:29 ` [PATCH net-next v3 6/9] drivers/base/power: add dpm_sysfs_change_owner() Christian Brauner
2020-02-20 10:02   ` Rafael J. Wysocki
2020-02-20 10:21     ` Christian Brauner
2020-02-20 10:30       ` Rafael J. Wysocki
2020-02-20 10:35         ` Christian Brauner
2020-02-18 16:29 ` [PATCH net-next v3 7/9] net-sysfs: add netdev_change_owner() Christian Brauner
2020-02-18 16:29 ` [PATCH net-next v3 8/9] net-sysfs: add queue_change_owner() Christian Brauner
2020-02-18 16:29 ` [PATCH net-next v3 9/9] net: fix sysfs permssions when device changes network namespace Christian Brauner
2020-02-20  0:24 ` [PATCH net-next v3 0/9] net: fix sysfs permssions when device changes network David Miller
2020-02-20 11:26   ` Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200220111550.GE3374196@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=christian.brauner@ubuntu.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pavel@ucw.cz \
    --cc=rafael@kernel.org \
    --cc=stephen@networkplumber.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).