From patchwork Wed May 30 14:59:02 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [08/12] container quota: let quotactl(2) works for container. Date: Wed, 30 May 2012 04:59:02 -0000 From: "jeff.liu" X-Patchwork-Id: 161996 Message-Id: <1338389946-13711-9-git-send-email-jeff.liu@oracle.com> To: containers@lists.linux-foundation.org Cc: cgroups@vger.kernel.org, jack@suse.cz, glommer@parallels.com, daniel.lezcano@free.fr, tytso@mit.edu, bpm@sgi.com, chris.mason@oracle.com, hch@infradead.org, christopher.jones@oracle.com, david@fromorbit.com, tinguely@sgi.com, tm@tao.ma, linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org, Jie Liu Modify quotactl(2) to determine for container quota control operations. Signed-off-by: Jie Liu --- fs/quota/quota.c | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/fs/quota/quota.c b/fs/quota/quota.c index 9a39120..40f381e 100644 --- a/fs/quota/quota.c +++ b/fs/quota/quota.c @@ -18,6 +18,12 @@ #include #include +/* Mount namespace disk quota required */ +#include +#include +#include "../ns_quota.h" +#include "../ns_quotaops.h" + static int check_quotactl_permission(struct super_block *sb, int type, int cmd, qid_t id) { @@ -355,6 +361,14 @@ SYSCALL_DEFINE4(quotactl, unsigned int, cmd, const char __user *, special, type = cmd & SUBCMDMASK; /* + * Perform mount namespace quotactl when it is invoked from container. + */ + if (do_quotactl_for_container(special)) { + ret = do_container_quotactl(type, cmds, id, addr); + goto out; + } + + /* * As a special case Q_SYNC can be called without a specific device. * It will iterate all superblocks that have quota enabled and call * the sync action on each of them.