commit:     2eb0ea9afbba584fc4c5ee0feefa9ae6a3d3278d
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:59:01 2014 +0000
URL:        
http://sources.gentoo.org/gitweb/?p=proj/openrc.git;a=commit;h=2eb0ea9a

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