commit:     30cc3cdb76a66c7c0f89a52db4e5cff77b570e31
Author:     William Hubbs <w.d.hubbs <AT> gmail <DOT> com>
AuthorDate: Sun Nov 23 16:28:21 2014 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Mon Nov 24 03:39:20 2014 +0000
URL:        
http://sources.gentoo.org/gitweb/?p=proj/openrc.git;a=commit;h=30cc3cdb

Make sysfs behave like netmount and localmount

sysfs now mounts all related sysfs file systems and returns success,
like netmount and localmount.

Also, we now check to make sure the cgroups are not mounted before we
mount them.

X-Gentoo-Bug: 530138
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=530138

---
 init.d/sysfs.in | 21 +++++----------------
 1 file changed, 5 insertions(+), 16 deletions(-)

diff --git a/init.d/sysfs.in b/init.d/sysfs.in
index 67485c2..bc0d9d3 100644
--- a/init.d/sysfs.in
+++ b/init.d/sysfs.in
@@ -113,7 +113,8 @@ mount_cgroups()
        yesno ${rc_controller_cgroups:-YES} && [ -e /proc/cgroups ] || return 0
        while read name hier groups enabled rest; do
                case "${enabled}" in
-                       1)      mkdir /sys/fs/cgroup/${name}
+                       1)      mountinfo -q /sys/fs/cgroup/${name} && continue
+                               mkdir /sys/fs/cgroup/${name}
                                mount -n -t cgroup -o ${sysfs_opts},${name} \
                                        ${name} /sys/fs/cgroup/${name}
                                ;;
@@ -129,25 +130,13 @@ restorecon_sys()
                restorecon -rF /sys/fs/cgroup >/dev/null 2>&1
                eend $?
        fi
-
-       return 0
 }
 
 start()
 {
-       local retval
        mount_sys
-       retval=$?
-       if [ $retval -eq 0 ]; then
-               mount_misc
-               retval=$?
-       fi
-       if [ $retval -eq 0 ]; then
-               mount_cgroups
-               retval=$?
-       fi
-
+       mount_misc
+       mount_cgroups
        restorecon_sys
-
-       return $retval
+       return 0
 }

Reply via email to