bin/168544: commit references a PR
dfilter service
dfilter at FreeBSD.ORG
Wed Jun 12 16:50:01 UTC 2013
The following reply was made to PR bin/168544; it has been noted by GNATS.
From: dfilter at FreeBSD.ORG (dfilter service)
To: bug-followup at FreeBSD.org
Cc:
Subject: Re: bin/168544: commit references a PR
Date: Wed, 12 Jun 2013 16:44:26 +0000 (UTC)
Author: crees (doc,ports committer)
Date: Wed Jun 12 16:44:17 2013
New Revision: 251660
URL: http://svnweb.freebsd.org/changeset/base/251660
Log:
Clean up swapfile memory disk on shutdown
Make the md unit number configurable so that it can be predicted
PR: bin/168544
Submitted by: wblock (based on)
Approved by: kevlo
Modified:
head/etc/defaults/rc.conf
head/etc/rc.d/addswap
Modified: head/etc/defaults/rc.conf
==============================================================================
--- head/etc/defaults/rc.conf Wed Jun 12 16:13:05 2013 (r251659)
+++ head/etc/defaults/rc.conf Wed Jun 12 16:44:17 2013 (r251660)
@@ -33,6 +33,7 @@ always_force_depends="NO" # Set to check
# running during boot (can increase boot time).
swapfile="NO" # Set to name of swapfile if aux swapfile desired.
+swapfile_mdunit="99" # Swapfile md(4) unit number created by mdconfig(8).
apm_enable="NO" # Set to YES to enable APM BIOS functions (or NO).
apmd_enable="NO" # Run apmd to handle APM event from userland.
apmd_flags="" # Flags to apmd (if enabled).
Modified: head/etc/rc.d/addswap
==============================================================================
--- head/etc/rc.d/addswap Wed Jun 12 16:13:05 2013 (r251659)
+++ head/etc/rc.d/addswap Wed Jun 12 16:44:17 2013 (r251660)
@@ -8,13 +8,13 @@
# PROVIDE: addswap
# REQUIRE: FILESYSTEMS kld
# BEFORE: netif
-# KEYWORD: nojail
+# KEYWORD: nojail shutdown
. /etc/rc.subr
name="addswap"
start_cmd="addswap_start"
-stop_cmd=":"
+stop_cmd="addswap_stop"
addswap_start()
{
@@ -23,8 +23,43 @@ addswap_start()
;;
*)
if [ -w "${swapfile}" ]; then
- echo "Adding ${swapfile} as additional swap"
- mdev=`mdconfig -a -t vnode -f ${swapfile}` && swapon /dev/${mdev}
+ check_startmsgs && echo "Adding ${swapfile} as additional swap"
+
+ if [ -n "${swapfile_mdunit}" ]; then
+ mdev="/dev/md${swapfile_mdunit#md}"
+ mdconfig -a -t vnode -f "${swapfile}" -u ${swapfile_mdunit}
+ else
+ mdev="/dev/`mdconfig -a -t vnode -f "${swapfile}"`"
+ fi
+
+ if [ $? -eq 0 ]; then
+ swapon ${mdev}
+ else
+ echo "error creating swapfile device"
+ fi
+ fi
+ ;;
+ esac
+}
+
+addswap_stop()
+{
+ case ${swapfile} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ if [ -n "${swapfile_mdunit}" ]; then
+ mdev="/dev/md${swapfile_mdunit#md}"
+ else
+ mdev="/dev/`mdconfig -lv | grep "${swapfile}" | cut -f1`"
+ swapfile_mdunit=${mdev#md}
+ fi
+ if [ -n "${swapfile_mdunit}" ]; then
+ swapctl -l | grep -q ${mdev}
+ if [ $? -eq 0 ]; then
+ echo "Dismounting swapfile ${swapfile}"
+ swapoff ${mdev} && mdconfig -d -u ${swapfile_mdunit}
+ fi
fi
;;
esac
_______________________________________________
svn-src-all at freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe at freebsd.org"
More information about the freebsd-rc
mailing list