From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1764847AbYEFJRb (ORCPT ); Tue, 6 May 2008 05:17:31 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1762236AbYEFJO0 (ORCPT ); Tue, 6 May 2008 05:14:26 -0400 Received: from fxip-0047f.externet.hu ([88.209.222.127]:59505 "EHLO pomaz-ex.szeredi.hu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1761215AbYEFJOV (ORCPT ); Tue, 6 May 2008 05:14:21 -0400 Message-Id: <20080506091408.217759921@szeredi.hu> References: <20080506091327.259950960@szeredi.hu> User-Agent: quilt/0.45-1 Date: Tue, 06 May 2008 11:13:29 +0200 From: Miklos Szeredi To: akpm@linux-foundation.org Cc: hch@infradead.org, viro@ZenIV.linux.org.uk, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, Paul Menage Subject: [patch 02/24] cgroup: dont call vfs_mkdir Content-Disposition: inline; filename=cgroup_mkdir_cleanup.patch Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Miklos Szeredi cgroup_clone() calls vfs_mkdir() to create a directory in the cgroup filesystem. Replace with explicit call to cgroup_mkdir() and fsnotify_mkdir(). This is equivalent, except that the following functions are not called before cgroup_mkdir(): - may_create() - security_inode_mkdir() - DQUOT_INIT() Permission to clone the cgroup has already been checked in copy_namespaces() (requiring CAP_SYS_ADMIN). Additional file system related capability checks are inappropriate and confusing. The quota check is unnecessary, as quotas don't make any sense for this filesystem. Signed-off-by: Miklos Szeredi CC: Paul Menage --- kernel/cgroup.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) Index: linux-2.6/kernel/cgroup.c =================================================================== --- linux-2.6.orig/kernel/cgroup.c 2008-05-06 11:04:29.000000000 +0200 +++ linux-2.6/kernel/cgroup.c 2008-05-06 11:04:32.000000000 +0200 @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -2928,7 +2929,9 @@ int cgroup_clone(struct task_struct *tsk } /* Create the cgroup directory, which also creates the cgroup */ - ret = vfs_mkdir(inode, dentry, S_IFDIR | 0755); + ret = cgroup_mkdir(inode, dentry, S_IFDIR); + if (!ret) + fsnotify_mkdir(inode, dentry); child = __d_cgrp(dentry); dput(dentry); if (ret) { --