Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp3342841imm; Fri, 20 Jul 2018 14:58:53 -0700 (PDT) X-Google-Smtp-Source: AAOMgpcuJC/BkskRnB5/dk2a2bhMhSFm7J2s15B/nt/I7FJBVzTJ4akPC3w5rhrF3Xe1WzEtKtpB X-Received: by 2002:a62:e00a:: with SMTP id f10-v6mr3821999pfh.208.1532123933564; Fri, 20 Jul 2018 14:58:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532123933; cv=none; d=google.com; s=arc-20160816; b=Z5B6OJ+XkHWTEDJ4jtUrPak22vlzXcuTKWDMLP1bjoVesnZUDaFwhPPdmZYXz7eb9z UzwFdZlHlXqSnk7syWSScBaP2jijS45nN6lLTn9P4W9P11SRT/Ud2D7VGaROawzPPNM3 0De5RDIza0yaLDH6FIJEuuk/NSU19iR2x0uaX39gxMkSz3pFoeFnjhobVD3Gs9ahKzBA AHVzYLgfObOm2wcBzrSGQt1AooPuXY7j11YkFoZhsjC9lrnD0ToMWlGXy1XYXIbvdfSx dr272b+Eyz9UOXGy29uajLJ+FFVobECpLqcC5/VMHcrqa/xFSN1rMvlZ0b8HuWxuEeyF Ocjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=Xy2KsYSfZxqy/7r9gNtPMR0WFYO1yheEryaIb4DL1pk=; b=oUrICr5BIJTDQtc5muhbinQJQelEr6OZAqdciE5TE1F/HHH7AwBQ/CkURYsBuZGM/3 JmUNALa2s6rVYr/Q2LTe9pL80zYAYmxZV7BzTxKRvn9f76HUNvqvwE7sLeEGQu0QSCAr xfGg6uCqXSBN5PJF3T4FqD5LBGveeDrtsdxlDWNZ3bgIHRoc7meKh2Y0IwLNo3I3TRjZ YXisuocin3doKnGzhAsUsLPb41C/xiUYO464mhLRa7ru5gwZmzanBEAB1cho5dTnhp8K oyWuCeOmY5ucmGxaj2MSroql6eTbk1eYwgMuYinsz0ZiDf+QM/fvTJ2asI24ajrTIa1g 6Akg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d13-v6si2468877plr.196.2018.07.20.14.58.39; Fri, 20 Jul 2018 14:58:53 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731065AbeGTWrs (ORCPT + 99 others); Fri, 20 Jul 2018 18:47:48 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:37626 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728214AbeGTWrr (ORCPT ); Fri, 20 Jul 2018 18:47:47 -0400 Received: from 2.general.tyhicks.us.vpn ([10.172.64.53] helo=sec.l.tihix.com) by youngberry.canonical.com with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.76) (envelope-from ) id 1fgdP3-0004ZT-Rn; Fri, 20 Jul 2018 21:57:34 +0000 From: Tyler Hicks To: Greg Kroah-Hartman , Tejun Heo , "David S. Miller" , Stephen Hemminger Cc: Dmitry Torokhov , "Eric W. Biederman" , linux-kernel@vger.kernel.org, netdev@vger.kernel.org, bridge@lists.linux-foundation.org, Linux Containers Subject: [PATCH net-next v3 3/8] kobject: kset_create_and_add() - fetch ownership info from parent Date: Fri, 20 Jul 2018 21:56:49 +0000 Message-Id: <1532123814-1109-4-git-send-email-tyhicks@canonical.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1532123814-1109-1-git-send-email-tyhicks@canonical.com> References: <1532123814-1109-1-git-send-email-tyhicks@canonical.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Dmitry Torokhov This change implements get_ownership() for ksets created with kset_create_and_add() call by fetching ownership data from parent kobject. This is done mostly for benefit of "queues" attribute of net devices so that corresponding directory belongs to container's root instead of global root for network devices in a container. Signed-off-by: Dmitry Torokhov Reviewed-by: Tyler Hicks --- lib/kobject.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/kobject.c b/lib/kobject.c index f2dc1f756007..389829d3a1d1 100644 --- a/lib/kobject.c +++ b/lib/kobject.c @@ -887,9 +887,16 @@ static void kset_release(struct kobject *kobj) kfree(kset); } +void kset_get_ownership(struct kobject *kobj, kuid_t *uid, kgid_t *gid) +{ + if (kobj->parent) + kobject_get_ownership(kobj->parent, uid, gid); +} + static struct kobj_type kset_ktype = { .sysfs_ops = &kobj_sysfs_ops, - .release = kset_release, + .release = kset_release, + .get_ownership = kset_get_ownership, }; /** -- 2.7.4