]> git.ipfire.org Git - thirdparty/libcgroup.git/commitdiff
This patch removes the permission change from control_group_create function
authorIvana Hutarova Varekova <varekova@redhat.com>
Wed, 10 Nov 2010 15:08:20 +0000 (16:08 +0100)
committerJan Safranek <jsafrane@redhat.com>
Wed, 10 Nov 2010 15:08:20 +0000 (16:08 +0100)
It should be done only if the caller needs it not by default.

EXAMPLE:
before the change:
# ./tools/cgcreate -g devices:/test1
# ll /cgroup/cpu3/test1
total 0
-rwxrwxr-x. 1 root root 0 2010-11-02 08:05 cgroup.procs
-rwxrwxr-x. 1 root root 0 2010-11-02 08:05 devices.allow
-rwxrwxr-x. 1 root root 0 2010-11-02 08:05 devices.deny
-rwxrwxr-x. 1 root root 0 2010-11-02 08:05 devices.list
-rwxrwxr-x. 1 root root 0 2010-11-02 08:05 notify_on_release
-rwxrwxr-x. 1 root root 0 2010-11-02 08:05 tasks
# ll /cgroup/cpu3/ | grep test1
drwxrwxr-x. 2 root root 0 2010-11-02 08:05 test1

after the change:
# ./tools/cgcreate -g devices:/test2
# ll /cgroup/cpu3/test2
total 0
-r--r--r--. 1 root root 0 2010-11-02 08:04 cgroup.procs
--w-------. 1 root root 0 2010-11-02 08:04 devices.allow
--w-------. 1 root root 0 2010-11-02 08:04 devices.deny
-r--r--r--. 1 root root 0 2010-11-02 08:04 devices.list
-rw-r--r--. 1 root root 0 2010-11-02 08:04 notify_on_release
-rw-r--r--. 1 root root 0 2010-11-02 08:04 tasks
# ll /cgroup/cpu3/ | grep test2
drwxr-xr-x. 2 root root 0 2010-11-02 08:04 test2

Signed-off-by: Ivana Hutarova Varekova<varekova@redhat.com>
Signed-off-by: Jan Safranek <jsafrane@redhat.com>
src/api.c

index d8f6766399aebf929fde5b6a444e53bd1fef0742..6e79db00d850a9087f78b6046337ffc47b4cae44 100644 (file)
--- a/src/api.c
+++ b/src/api.c
@@ -124,7 +124,7 @@ static int cg_chown_file(FTS *fts, FTSENT *ent, uid_t owner, gid_t group)
 {
        int ret = 0;
        const char *filename = fts->fts_path;
-       cgroup_dbg("seeing file %s\n", filename);
+       cgroup_dbg("chown: seeing file %s\n", filename);
        switch (ent->fts_info) {
        case FTS_ERR:
                errno = ent->fts_errno;
@@ -135,22 +135,11 @@ static int cg_chown_file(FTS *fts, FTSENT *ent, uid_t owner, gid_t group)
        case FTS_NS:
        case FTS_DNR:
        case FTS_DP:
-               ret = chown(filename, owner, group);
-               if (ret)
-                       goto fail_chown;
-               ret = chmod(filename, S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP |
-                                       S_IWGRP | S_IXGRP | S_IROTH | S_IXOTH);
-               break;
        case FTS_F:
        case FTS_DEFAULT:
                ret = chown(filename, owner, group);
-               if (ret)
-                       goto fail_chown;
-               ret = chmod(filename, S_IRUSR | S_IWUSR |  S_IRGRP |
-                                               S_IWGRP | S_IROTH);
                break;
        }
-fail_chown:
        if (ret < 0) {
                last_errno = errno;
                ret = ECGOTHER;
@@ -166,7 +155,7 @@ static int cg_chown_recursive(char **path, uid_t owner, gid_t group)
        int ret = 0;
        FTS *fts;
 
-       cgroup_dbg("path is %s\n", *path);
+       cgroup_dbg("chown: path is %s\n", *path);
        fts = fts_open(path, FTS_PHYSICAL | FTS_NOCHDIR |
                                FTS_NOSTAT, NULL);
        while (1) {