From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1RwxAk-0004Ew-LC for garchives@archives.gentoo.org; Mon, 13 Feb 2012 14:46:30 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 08432E0B24; Mon, 13 Feb 2012 14:46:21 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id B7367E0B24 for ; Mon, 13 Feb 2012 14:46:21 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id F3B741B401B for ; Mon, 13 Feb 2012 14:46:20 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id B04C5E5400 for ; Mon, 13 Feb 2012 14:46:19 +0000 (UTC) From: "William Hubbs" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "William Hubbs" Message-ID: <79d6f109262ac936218332730b231a5b5897d612.WilliamH@gentoo> Subject: [gentoo-commits] proj/openrc:master commit in: runlevels/, init.d/ X-VCS-Repository: proj/openrc X-VCS-Files: init.d/Makefile init.d/swap.in init.d/swapfiles.in runlevels/Makefile X-VCS-Directories: runlevels/ init.d/ X-VCS-Committer: WilliamH X-VCS-Committer-Name: William Hubbs X-VCS-Revision: 79d6f109262ac936218332730b231a5b5897d612 Date: Mon, 13 Feb 2012 14:46:19 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: 4df5de4f-9c09-4d00-b967-c8e2bdc2a90a X-Archives-Hash: fb1efe5c6a3228b08306377b0430cff3 commit: 79d6f109262ac936218332730b231a5b5897d612 Author: William Hubbs gentoo org> AuthorDate: Sun Feb 12 18:37:46 2012 +0000 Commit: William Hubbs gentoo org> CommitDate: Mon Feb 13 14:35:29 2012 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/openrc.git;a=3D= commit;h=3D79d6f109 Improve swap handling Modify the swap script so it starts before and stops after localmount. Also, on linux, this script should skip mounting swap on loopback. Add a swapfiles script which runs after localmount and is designed to activate additional swap space which could not be activated before localmount was run. This includes loopback swap on linux and swapfiles which are on local file systems that were not mounted when swap was activated initially. The start code does reactivate swap that is already active, but this is not an error condition. Reported-by: Giampaolo Tomassoni tomassoni.biz> X-Gentoo-Bug: 401003 X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=3D401003 --- init.d/Makefile | 4 ++-- init.d/swap.in | 11 ++++++++++- init.d/{swap.in =3D> swapfiles.in} | 18 ++++++++++++++---- runlevels/Makefile | 2 +- 4 files changed, 27 insertions(+), 8 deletions(-) diff --git a/init.d/Makefile b/init.d/Makefile index 8351f3c..863864f 100644 --- a/init.d/Makefile +++ b/init.d/Makefile @@ -1,7 +1,7 @@ DIR=3D ${INITDIR} SRCS=3D bootmisc.in fsck.in hostname.in local.in localmount.in netmount.= in \ - network.in root.in savecache.in staticroute.in swap.in swclock.in \ - sysctl.in urandom.in ${SRCS-${OS}} + network.in root.in savecache.in staticroute.in swap.in swapfiles.in \ + swclock.in sysctl.in urandom.in ${SRCS-${OS}} BIN=3D ${OBJS} =20 INSTALLAFTER=3D _installafter_net.lo diff --git a/init.d/swap.in b/init.d/swap.in index bd20ffe..bdc5dc7 100644 --- a/init.d/swap.in +++ b/init.d/swap.in @@ -4,7 +4,7 @@ =20 depend() { - need localmount + before localmount keyword -jail -openvz -prefix -vserver -lxc } =20 @@ -12,6 +12,15 @@ start() { ebegin "Activating swap devices" case "$RC_UNAME" in + Linux) + local dev + for dev in $(fstabinfo -b -t swap); do + case "$dev" in + /dev/loop*) ;; + *) swapon $dev 2>/dev/null;; + esac + done + ;; NetBSD|OpenBSD) swapctl -A -t noblk >/dev/null;; *) swapon -a >/dev/null;; esac diff --git a/init.d/swap.in b/init.d/swapfiles.in similarity index 60% copy from init.d/swap.in copy to init.d/swapfiles.in index bd20ffe..f46f3c8 100644 --- a/init.d/swap.in +++ b/init.d/swapfiles.in @@ -10,7 +10,7 @@ depend() =20 start() { - ebegin "Activating swap devices" + ebegin "Activating additional swap space" case "$RC_UNAME" in NetBSD|OpenBSD) swapctl -A -t noblk >/dev/null;; *) swapon -a >/dev/null;; @@ -20,16 +20,26 @@ start() =20 stop() { - ebegin "Deactivating swap devices" + ebegin "Deactivating additional swap space" =20 # Try to unmount all tmpfs filesystems not in use, else a deadlock may # occur. As $RC_SVCDIR may also be tmpfs we cd to it to lock it + # fixme: Do we need this here since we are only unmounting swap files + # and loopback swap? cd "$RC_SVCDIR" umount -a -t tmpfs 2>/dev/null =20 case "$RC_UNAME" in - NetBSD|OpenBSD) swapctl -U -t noblk >/dev/null;; - *) swapoff -a >/dev/null;; + Linux) + while read filename type rest; do + case "$type" in + file) swapoff $filename >/dev/null;; + esac + case "$filename" in + /dev/loop*) swapoff $filename >/dev/null;; + esac + done < /proc/swaps + ;; esac eend 0 } diff --git a/runlevels/Makefile b/runlevels/Makefile index c1a9f09..1573572 100644 --- a/runlevels/Makefile +++ b/runlevels/Makefile @@ -1,5 +1,5 @@ BOOT=3D bootmisc fsck hostname localmount \ - root swap sysctl urandom ${BOOT-${OS}} + root swap swapfiles sysctl urandom ${BOOT-${OS}} DEFAULT=3D local netmount SHUTDOWN=3D savecache ${SHUTDOWN-${OS}} SYSINIT=3D ${SYSINIT-${OS}}