From patchwork Tue Aug 16 22:33:13 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Torokhov X-Patchwork-Id: 659850 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3sDRxr4tQPz9t0F for ; Wed, 17 Aug 2016 08:34:56 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=KG+BkiY5; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753538AbcHPWdW (ORCPT ); Tue, 16 Aug 2016 18:33:22 -0400 Received: from mail-pa0-f67.google.com ([209.85.220.67]:35387 "EHLO mail-pa0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752529AbcHPWdV (ORCPT ); Tue, 16 Aug 2016 18:33:21 -0400 Received: by mail-pa0-f67.google.com with SMTP id cf3so5846288pad.2; Tue, 16 Aug 2016 15:33:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=yuRPCkNv0DTt+Mi2fZa6a++qPVMpHDWrUvYSnWzjZks=; b=KG+BkiY5C9XhLsCCwHY0Hq1iUB6FoG+wC9FoMM82m49WV75f2A9IBaSkEgjIXW9k8D EZQLOPS+m4EQRZECZR4lRFfE+ouq6iJr8OzYUX2NYkaILz5c/LQklsLbus1U7Mf99pFm EutBOLZlJbCd4EVjWQasZhz9n4VnNiL57pYvRJeT4HCQcpJ3EWcBPcZocCdXZiSwkybe SDQNViqkdT+gUTI0mJAoPhuJHvpWoIdxpW/c38y5yox/ozEUffc5b+AeKg+z0tshZdxh rr4mvW0EYBT06Qpv+8eceN79oCD1WE0e/LCCyziLXvSlsvJCJTVmfTQPu6hleCr9Gg9e WBYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=yuRPCkNv0DTt+Mi2fZa6a++qPVMpHDWrUvYSnWzjZks=; b=cN66GtA/hJQmbFILlMxsxqmkrzJ/4gFzkWd9Zy2EwNyIsyx60eX6ezJVqjmaePmTDr 68DyZmkE2gxb8RP8K6caI0CIrqR5Vuqj+ihkV7+LR4604xI05tbzG9fKseS1Sv+H1BW+ XScwSDEKMv06Bs8plurK4uY1wAQiIV2aGaiJPybGmsPgg4InMMJiSqP+wevUokKMgMid YwgdYZO/rQo9pvCo/3SoHyCx7mVR3ZSCfbwM2UIj/qe3ADVTRAbOp8xzj9iwjIu7T+xS Ky2/SlCoiP6Lk/9YINF8v3/L9Wa7S7ivZOs+3Q2mqRiM6jFbBa7DIUu8cfi0qWx+9w4+ 0CGQ== X-Gm-Message-State: AEkoous9FKBT06PF5pX4kRN95JvShhsoO7EKiIQ/HkpGL7QUsBS0/jHnxEg+/+8iAdt5ow== X-Received: by 10.66.76.38 with SMTP id h6mr67993465paw.79.1471386800309; Tue, 16 Aug 2016 15:33:20 -0700 (PDT) Received: from dtor-ws.mtv.corp.google.com ([172.22.152.21]) by smtp.gmail.com with ESMTPSA id cp11sm41819736pac.28.2016.08.16.15.33.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 16 Aug 2016 15:33:19 -0700 (PDT) From: Dmitry Torokhov To: Tejun Heo , "Eric W. Biederman" , "David S. Miller" Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org Subject: [PATCH 3/5] kobject: kset_create_and_add() - fetch ownership info from parent Date: Tue, 16 Aug 2016 15:33:13 -0700 Message-Id: <1471386795-32918-4-git-send-email-dmitry.torokhov@gmail.com> X-Mailer: git-send-email 2.8.0.rc3.226.g39d4020 In-Reply-To: <1471386795-32918-1-git-send-email-dmitry.torokhov@gmail.com> References: <1471386795-32918-1-git-send-email-dmitry.torokhov@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org 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 --- lib/kobject.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/kobject.c b/lib/kobject.c index 7d516d9..f81ac7c 100644 --- a/lib/kobject.c +++ b/lib/kobject.c @@ -890,9 +890,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, }; /**