Hi, I have thought about the patch which changes cg_chmod_recursive and I think the better way is to put it at the end of the series. This is a rebased series with the cleanup patch at the end. The rest of the patchset is unchanged.
This is just a first RFC for permissions setting consolidation. It needs some cleanup (proper declaration of new API, documentation, etc.). Currently we cannot specify permissions for subsystems files and directories in the configuration file while we can do that by cgcreate tool. The tool, however, changes permissions blindly without considering which of them make sense for particular files. One example is cgroup.event_control which is supposed to be write only. # cgcreate -a root:cgroup -f 775 -g cpu:foo foo# ls -l -rwxrwxr-x 1 root cgroup 0 May 19 11:17 cgroup.clone_children -rwxrwxr-x 1 root cgroup 0 May 19 11:17 cgroup.event_control -rwxrwxr-x 1 root cgroup 0 May 19 11:17 cgroup.procs -rwxrwxr-x 1 root cgroup 0 May 19 11:17 cpu.rt_period_us -rwxrwxr-x 1 root cgroup 0 May 19 11:17 cpu.rt_runtime_us -rwxrwxr-x 1 root cgroup 0 May 19 11:17 cpu.shares -rwxrwxr-x 1 root cgroup 0 May 19 11:17 notify_on_release -rwxrwxr-x 1 root cgroup 0 May 19 11:17 tasks This patchset adds possibility to do the same thing as cgcreate in configuration file and changes the way how we set file permissions. Patch 1 is just preparatory and adds file/directory permissions fields into cgroup so that we can set them from the configuration. Patch 2 actually adds the file permissions handling into configuration. Patch 3 changes the way how we set file and directory permissions. As Jan suggested in the previous discussions we use owner file permissions as an umask for group and others permissions. Patch 4 is just a clean up. I guess it might be a controversial a bit because it changes API. I can drop it easily if you do not like it. I just think that we do not need any special flag if we can use -1 for mode_t which can be never used for any permissions. Michal Hocko (4): Add file and directory permissions into cgroup cgconfig: enable setting file permissions cg_chmod_file: Use owner permissions as umask for other permissions cg_chmod_recursive: use -1U for unitialized perm parameters include/libcgroup/groups.h | 8 ++---- src/api.c | 56 ++++++++++++++++++++++++++++++++++--------- src/config.c | 30 +++++++++++++++++++++++ src/libcgroup-internal.h | 3 ++ src/tools/cgcreate.c | 14 ++++------- src/wrapper.c | 15 +++++++++++- 6 files changed, 99 insertions(+), 27 deletions(-) -- 1.7.4.4 ------------------------------------------------------------------------------ What Every C/C++ and Fortran developer Should Know! Read this article and learn how Intel has extended the reach of its next-generation tools to help Windows* and Linux* C/C++ and Fortran developers boost performance applications - including clusters. http://p.sf.net/sfu/intel-dev2devmay _______________________________________________ Libcg-devel mailing list Libcg-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libcg-devel