Re: linux-next: manual merge of the driver-core tree with the net-next tree
From: Greg KH
Date: Mon Jul 23 2018 - 02:20:52 EST
On Mon, Jul 23, 2018 at 03:12:24PM +1000, Stephen Rothwell wrote:
> Hi Greg,
>
> Today's linux-next merge of the driver-core tree got a conflict in:
>
> fs/sysfs/group.c
>
> between commit:
>
> 5f81880d5204 ("sysfs, kobject: allow creating kobject belonging to arbitrary users")
>
> from the net-next tree and commit:
>
> c855cf2759d2 ("sysfs: Fix internal_create_group() for named group updates")
>
> from the driver-core tree.
>
> I fixed it up (I think - see below) and can carry the fix as
> necessary. This is now fixed as far as linux-next is concerned, but any
> non trivial conflicts should be mentioned to your upstream maintainer
> when your tree is submitted for merging. You may also want to consider
> cooperating with the maintainer of the conflicting tree to minimise any
> particularly complex conflicts.
>
> --
> Cheers,
> Stephen Rothwell
>
> diff --cc fs/sysfs/group.c
> index c7a716c4acc9,38240410f831..000000000000
> --- a/fs/sysfs/group.c
> +++ b/fs/sysfs/group.c
> @@@ -122,15 -118,23 +122,24 @@@ static int internal_create_group(struc
> kobj->name, grp->name ?: "");
> return -EINVAL;
> }
> + kobject_get_ownership(kobj, &uid, &gid);
> if (grp->name) {
> - kn = kernfs_create_dir_ns(kobj->sd, grp->name,
> - S_IRWXU | S_IRUGO | S_IXUGO,
> - uid, gid, kobj, NULL);
> - if (IS_ERR(kn)) {
> - if (PTR_ERR(kn) == -EEXIST)
> - sysfs_warn_dup(kobj->sd, grp->name);
> - return PTR_ERR(kn);
> + if (update) {
> + kn = kernfs_find_and_get(kobj->sd, grp->name);
> + if (!kn) {
> + pr_warn("Can't update unknown attr grp name: %s/%s\n",
> + kobj->name, grp->name);
> + return -EINVAL;
> + }
> + } else {
> - kn = kernfs_create_dir(kobj->sd, grp->name,
> - S_IRWXU | S_IRUGO | S_IXUGO,
> - kobj);
> ++ kn = kernfs_create_dir_ns(kobj->sd, grp->name,
> ++ S_IRWXU | S_IRUGO | S_IXUGO,
> ++ uid, gid, kobj, NULL);
> + if (IS_ERR(kn)) {
> + if (PTR_ERR(kn) == -EEXIST)
> + sysfs_warn_dup(kobj->sd, grp->name);
> + return PTR_ERR(kn);
> + }
> }
> } else
> kn = kobj->sd;
I think this is correct. Rajat, can you verify it please?
thanks,
greg k-h