diff -up libcgroup-0.40.rc1/scripts/init.d/cgred.in.empty-config libcgroup-0.40.rc1/scripts/init.d/cgred.in
--- libcgroup-0.40.rc1/scripts/init.d/cgred.in.empty-config 2013-08-26 14:24:16.070531165 +0200
+++ libcgroup-0.40.rc1/scripts/init.d/cgred.in 2013-08-26 14:24:16.072531149 +0200
@@ -81,10 +81,6 @@ start()
log_failure_msg "$servicename is already running with PID `cat ${pidfile}`"
return 0
fi
- if [ ! -s $CGRED_CONF ]; then
- log_failure_msg "not configured"
- return 6
- fi
if ! grep "^cgroup" /proc/mounts &>/dev/null; then
echo
log_failure_msg $"Cannot find cgroups, is cgconfig service running?"
diff -up libcgroup-0.40.rc1/src/api.c.empty-config libcgroup-0.40.rc1/src/api.c
--- libcgroup-0.40.rc1/src/api.c.empty-config 2013-05-21 15:36:04.000000000 +0200
+++ libcgroup-0.40.rc1/src/api.c 2013-08-26 14:24:16.073531142 +0200
@@ -541,17 +541,6 @@ static int cgroup_parse_rules(bool cache
/* Loop variable. */
int i = 0;
- /* Open the configuration file. */
- pthread_rwlock_wrlock(&rl_lock);
- fp = fopen(CGRULES_CONF_FILE, "re");
- if (!fp) {
- cgroup_err("Error: failed to open configuration file %s: %s\n",
- CGRULES_CONF_FILE, strerror(errno));
- last_errno = errno;
- ret = ECGOTHER;
- goto unlock;
- }
-
/* Determine which list we're using. */
if (cache)
lst = &rl;
@@ -562,6 +551,15 @@ static int cgroup_parse_rules(bool cache
if (lst->head)
cgroup_free_rule_list(lst);
+ /* Open the configuration file. */
+ pthread_rwlock_wrlock(&rl_lock);
+ fp = fopen(CGRULES_CONF_FILE, "re");
+ if (!fp) {
+ cgroup_warn("Warning: failed to open configuration file %s: %s\n",
+ CGRULES_CONF_FILE, strerror(errno));
+ goto unlock;
+ }
+
/* Now, parse the configuration file one line at a time. */
cgroup_dbg("Parsing configuration file.\n");
while (fgets(buff, sizeof(buff), fp) != NULL) {