]> git.ipfire.org Git - thirdparty/libcgroup.git/commitdiff
libcgroup: fixed chmod cg_chmod_recursive_controller
authorJan Safranek <jsafrane@redhat.com>
Tue, 27 Sep 2011 06:50:09 +0000 (08:50 +0200)
committerJan Safranek <jsafrane@redhat.com>
Tue, 27 Sep 2011 06:50:09 +0000 (08:50 +0200)
fts_read can return NULL in two cases. Either when we have visited all
files in the hierarchy (when errno is set to 0) or when an error
occured. We shouldn't set an error code in the first case obviously.

Changelog since v1:
 - updated log message

Signed-off-by: Jan Safranek <jsafrane@redhat.com>
Reviewed-by: Michal Hocko <mhocko@suse.cz>
src/api.c

index 09e6353ece198b4ae430ecacdeced342ed31e943..28486b71838a93492ae127f131b5a46d4211f85a 100644 (file)
--- a/src/api.c
+++ b/src/api.c
@@ -266,9 +266,11 @@ static int cg_chmod_recursive_controller(char *path, mode_t dir_mode,
                FTSENT *ent;
                ent = fts_read(fts);
                if (!ent) {
-                       cgroup_dbg("fts_read failed\n");
-                       last_errno = errno;
-                       final_ret = ECGOTHER;
+                       if (errno != 0) {
+                               cgroup_dbg("fts_read failed\n");
+                               last_errno = errno;
+                               final_ret = ECGOTHER;
+                       }
                        break;
                }
                ret = cg_chmod_file(fts, ent, dir_mode, dirm_change,