From: Christian Brauner <christian.brauner@ubuntu.com> To: linux-api@vger.kernel.org, linux-kernel@vger.kernel.org, Tejun Heo <tj@kernel.org> Cc: "Oleg Nesterov" <oleg@redhat.com>, "Peter Zijlstra" <peterz@infradead.org>, "Christian Brauner" <christian.brauner@ubuntu.com>, "Johannes Weiner" <hannes@cmpxchg.org>, "Li Zefan" <lizefan@huawei.com>, cgroups@vger.kernel.org, "Michal Koutný" <mkoutny@suse.com> Subject: [PATCH v6 2/6] cgroup: add cgroup_get_from_file() helper Date: Wed, 5 Feb 2020 14:26:19 +0100 [thread overview] Message-ID: <20200205132623.670015-3-christian.brauner@ubuntu.com> (raw) In-Reply-To: <20200205132623.670015-1-christian.brauner@ubuntu.com> Add a helper cgroup_get_from_file(). The helper will be used in subsequent patches to retrieve a cgroup while holding a reference to the struct file it was taken from. Cc: Tejun Heo <tj@kernel.org> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Li Zefan <lizefan@huawei.com> Cc: cgroups@vger.kernel.org Acked-by: Michal Koutný <mkoutny@suse.com> Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com> --- /* v1 */ patch not present /* v2 */ patch not present /* v3 */ Link: https://lore.kernel.org/r/20200117002143.15559-3-christian.brauner@ubuntu.com patch introduced - Tejun Heo <tj@kernel.org>: - split cgroup_get_from_file() changes into separate commmit /* v4 */ Link: https://lore.kernel.org/r/20200117181219.14542-3-christian.brauner@ubuntu.com unchanged /* v5 */ Link: https://lore.kernel.org/r/20200121154844.411-3-christian.brauner@ubuntu.com unchanged /* v6 */ unchanged - Christian Brauner <christian.brauner@ubuntu.com>: - add Acked-by: Michal Koutný <mkoutny@suse.com> --- kernel/cgroup/cgroup.c | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c index 5f84177e2065..7c1c8677849e 100644 --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c @@ -5875,6 +5875,24 @@ void cgroup_fork(struct task_struct *child) INIT_LIST_HEAD(&child->cg_list); } +static struct cgroup *cgroup_get_from_file(struct file *f) +{ + struct cgroup_subsys_state *css; + struct cgroup *cgrp; + + css = css_tryget_online_from_dir(f->f_path.dentry, NULL); + if (IS_ERR(css)) + return ERR_CAST(css); + + cgrp = css->cgroup; + if (!cgroup_on_dfl(cgrp)) { + cgroup_put(cgrp); + return ERR_PTR(-EBADF); + } + + return cgrp; +} + /** * cgroup_can_fork - called on a new task before the process is exposed * @child: the task in question. @@ -6163,7 +6181,6 @@ EXPORT_SYMBOL_GPL(cgroup_get_from_path); */ struct cgroup *cgroup_get_from_fd(int fd) { - struct cgroup_subsys_state *css; struct cgroup *cgrp; struct file *f; @@ -6171,17 +6188,8 @@ struct cgroup *cgroup_get_from_fd(int fd) if (!f) return ERR_PTR(-EBADF); - css = css_tryget_online_from_dir(f->f_path.dentry, NULL); + cgrp = cgroup_get_from_file(f); fput(f); - if (IS_ERR(css)) - return ERR_CAST(css); - - cgrp = css->cgroup; - if (!cgroup_on_dfl(cgrp)) { - cgroup_put(cgrp); - return ERR_PTR(-EBADF); - } - return cgrp; } EXPORT_SYMBOL_GPL(cgroup_get_from_fd); -- 2.25.0
WARNING: multiple messages have this Message-ID (diff)
From: Christian Brauner <christian.brauner-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org> To: linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> Cc: "Oleg Nesterov" <oleg-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>, "Peter Zijlstra" <peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>, "Christian Brauner" <christian.brauner-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org>, "Johannes Weiner" <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>, "Li Zefan" <lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>, cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, "Michal Koutný" <mkoutny-IBi9RG/b67k@public.gmane.org> Subject: [PATCH v6 2/6] cgroup: add cgroup_get_from_file() helper Date: Wed, 5 Feb 2020 14:26:19 +0100 [thread overview] Message-ID: <20200205132623.670015-3-christian.brauner@ubuntu.com> (raw) In-Reply-To: <20200205132623.670015-1-christian.brauner-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org> Add a helper cgroup_get_from_file(). The helper will be used in subsequent patches to retrieve a cgroup while holding a reference to the struct file it was taken from. Cc: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> Cc: Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org> Cc: Li Zefan <lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org> Cc: cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Acked-by: Michal Koutný <mkoutny-IBi9RG/b67k@public.gmane.org> Signed-off-by: Christian Brauner <christian.brauner-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org> --- /* v1 */ patch not present /* v2 */ patch not present /* v3 */ Link: https://lore.kernel.org/r/20200117002143.15559-3-christian.brauner-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org patch introduced - Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>: - split cgroup_get_from_file() changes into separate commmit /* v4 */ Link: https://lore.kernel.org/r/20200117181219.14542-3-christian.brauner-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org unchanged /* v5 */ Link: https://lore.kernel.org/r/20200121154844.411-3-christian.brauner-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org unchanged /* v6 */ unchanged - Christian Brauner <christian.brauner-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org>: - add Acked-by: Michal Koutný <mkoutny-IBi9RG/b67k@public.gmane.org> --- kernel/cgroup/cgroup.c | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c index 5f84177e2065..7c1c8677849e 100644 --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c @@ -5875,6 +5875,24 @@ void cgroup_fork(struct task_struct *child) INIT_LIST_HEAD(&child->cg_list); } +static struct cgroup *cgroup_get_from_file(struct file *f) +{ + struct cgroup_subsys_state *css; + struct cgroup *cgrp; + + css = css_tryget_online_from_dir(f->f_path.dentry, NULL); + if (IS_ERR(css)) + return ERR_CAST(css); + + cgrp = css->cgroup; + if (!cgroup_on_dfl(cgrp)) { + cgroup_put(cgrp); + return ERR_PTR(-EBADF); + } + + return cgrp; +} + /** * cgroup_can_fork - called on a new task before the process is exposed * @child: the task in question. @@ -6163,7 +6181,6 @@ EXPORT_SYMBOL_GPL(cgroup_get_from_path); */ struct cgroup *cgroup_get_from_fd(int fd) { - struct cgroup_subsys_state *css; struct cgroup *cgrp; struct file *f; @@ -6171,17 +6188,8 @@ struct cgroup *cgroup_get_from_fd(int fd) if (!f) return ERR_PTR(-EBADF); - css = css_tryget_online_from_dir(f->f_path.dentry, NULL); + cgrp = cgroup_get_from_file(f); fput(f); - if (IS_ERR(css)) - return ERR_CAST(css); - - cgrp = css->cgroup; - if (!cgroup_on_dfl(cgrp)) { - cgroup_put(cgrp); - return ERR_PTR(-EBADF); - } - return cgrp; } EXPORT_SYMBOL_GPL(cgroup_get_from_fd); -- 2.25.0
next prev parent reply other threads:[~2020-02-05 13:26 UTC|newest] Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-02-05 13:26 [PATCH v6 0/6] clone3 & cgroups: allow spawning processes into cgroups Christian Brauner 2020-02-05 13:26 ` Christian Brauner 2020-02-05 13:26 ` [PATCH v6 1/6] cgroup: unify attach permission checking Christian Brauner 2020-02-05 13:26 ` Christian Brauner [this message] 2020-02-05 13:26 ` [PATCH v6 2/6] cgroup: add cgroup_get_from_file() helper Christian Brauner 2020-02-05 13:26 ` [PATCH v6 3/6] cgroup: refactor fork helpers Christian Brauner 2020-02-05 13:26 ` Christian Brauner 2020-02-05 13:26 ` [PATCH v6 4/6] cgroup: add cgroup_may_write() helper Christian Brauner 2020-02-05 13:26 ` Christian Brauner 2020-02-05 13:26 ` [PATCH v6 5/6] clone3: allow spawning processes into cgroups Christian Brauner 2020-02-05 13:26 ` Christian Brauner 2020-02-05 13:26 ` [PATCH v6 6/6] selftests/cgroup: add tests for cloning " Christian Brauner 2020-02-05 13:26 ` Christian Brauner 2020-02-12 23:01 ` [PATCH v6 0/6] clone3 & cgroups: allow spawning processes " Tejun Heo 2020-02-13 12:52 ` Christian Brauner
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=20200205132623.670015-3-christian.brauner@ubuntu.com \ --to=christian.brauner@ubuntu.com \ --cc=cgroups@vger.kernel.org \ --cc=hannes@cmpxchg.org \ --cc=linux-api@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=lizefan@huawei.com \ --cc=mkoutny@suse.com \ --cc=oleg@redhat.com \ --cc=peterz@infradead.org \ --cc=tj@kernel.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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.