Date: Sat, 11 Sep 2004 19:53:36 -0400 From: Paul Mather <paul@gromit.dlib.vt.edu> To: hartzell@kestrel.alerce.com Cc: freebsd-geom@freebsd.org Subject: Re: Mounting root... Message-ID: <1094946816.59283.75.camel@zappa.Chelsea-Ct.Org> In-Reply-To: <16707.28763.7201.383177@rosebud.alerce.com> References: <16706.33472.228042.851882@rosebud.alerce.com> <20040911074556.GI30151@darkness.comp.waw.pl> <16707.25008.865268.555842@rosebud.alerce.com> <16707.28763.7201.383177@rosebud.alerce.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 2004-09-11 at 17:38, George Hartzell wrote: > Sorry to follow up my own posting, but I have something that works. > > Two changes to /etc/rc.d/swap1 > > change stop_cmd from ':' to 'swap1_stop' > > and change the line in swap1_stop from > > swapctl -U -t blk > > to > > swapoff -a The /etc/rc.d/swap1 on FreeBSD-CURRENT is very close to that on my NetBSD-CURRENT box. Here are the diffs: --- freebsd_swap1 2004-09-11 19:19:18.000000000 -0400 +++ netbsd_swap1 2004-09-11 19:25:03.000000000 -0400 @@ -1,18 +1,17 @@ #!/bin/sh # # $NetBSD: swap1,v 1.8 2002/03/24 15:52:41 lukem Exp $ -# $FreeBSD: src/etc/rc.d/swap1,v 1.6 2004/03/08 12:25:05 pjd Exp $ # # PROVIDE: localswap # REQUIRE: disks -# KEYWORD: FreeBSD nojail shutdown +# KEYWORD: shutdown . /etc/rc.subr name="swap1" -start_cmd='swapon -a' -stop_cmd=':' +start_cmd="swap1_start" +stop_cmd="swap1_stop" # Add all block-type swap devices; these might be necessary # during disk checks. So, although both have swap1_start and swap1_stop functions, under FreeBSD they're ignored. (I'm presuming when the script was imported from NetBSD it was left intact and the {start,stop}_cmd definitions amended to suit the FreeBSD case.) > To be consistent, one should probably also change the start_cmd to > swap1_start, and fix that function to use swapon -a since its usage of > swapctl is also broken. Then, no_swap and swapoff need to be > defaulted in /etc/defaults/rc.conf. > > Or, one could delete the swap1_{start,stop} functions, and just make > start_cmd be 'swapon -a' and stop_cmd be 'swapoff -a'. > > I don't know which is more better, clearly there's some history here > that's unfinished, or a cross-BSD compatibility thing, or??? Here's my proposed patch: --- netbsd_swap1 2004-09-11 19:25:03.000000000 -0400 +++ freebsd_swap1 2004-09-11 19:34:24.000000000 -0400 @@ -1,17 +1,18 @@ #!/bin/sh # # $NetBSD: swap1,v 1.8 2002/03/24 15:52:41 lukem Exp $ +# $FreeBSD: src/etc/rc.d/swap1,v 1.6 2004/03/08 12:25:05 pjd Exp $ # # PROVIDE: localswap # REQUIRE: disks -# KEYWORD: shutdown +# KEYWORD: FreeBSD nojail shutdown . /etc/rc.subr name="swap1" -start_cmd="swap1_start" -stop_cmd="swap1_stop" +start_cmd='swapon -a' +stop_cmd='swap1_stop' # Add all block-type swap devices; these might be necessary # during disk checks. @@ -29,7 +30,7 @@ { if checkyesno swapoff || [ -n "$rc_force" ]; then echo "Removing block-type swap devices" - swapctl -U -t blk + swapoff -a fi } This leaves the start_cmd the same, rather than using the swap1_start function, because swap1_start checks a "no_swap" setting that doesn't seem to be present on FreeBSD but is on NetBSD. (I don't know if a missing setting defaults to "NO," making this moot.) Changing stop_cmd to use the swap1_stop function makes turning off swap conditional on the "swapoff" setting, instead of unconditional, in the case of setting "stop_cmd='swapoff -a'". So, I think the above patch preserves the current behaviour, unless you set 'swapoff="YES"' in /etc/rc.conf, in which case all swap partitions will be unmounted during shutdown. Cheers, Paul. -- e-mail: paul@gromit.dlib.vt.edu "Without music to decorate it, time is just a bunch of boring production deadlines or dates by which bills must be paid." --- Frank Vincent Zappa
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1094946816.59283.75.camel>