freebsd-nq/sys
Pawel Jakub Dawidek 5ad4a7c74a Bring in geli suspend/resume functionality (finally).
Before this change if you wanted to suspend your laptop and be sure that your
encryption keys are safe, you had to stop all processes that use file system
stored on encrypted device, unmount the file system and detach geli provider.

This isn't very handy. If you are a lucky user of a laptop where suspend/resume
actually works with FreeBSD (I'm not!) you most likely want to suspend your
laptop, because you don't want to start everything over again when you turn
your laptop back on.

And this is where geli suspend/resume steps in. When you execute:

	# geli suspend -a

geli will wait for all in-flight I/O requests, suspend new I/O requests, remove
all geli sensitive data from the kernel memory (like encryption keys) and will
wait for either 'geli resume' or 'geli detach'.

Now with no keys in memory you can suspend your laptop without stopping any
processes or unmounting any file systems.

When you resume your laptop you have to resume geli devices using 'geli resume'
command. You need to provide your passphrase, etc. again so the keys can be
restored and suspended I/O requests released.

Of course you need to remember that 'geli suspend' won't clear file system
cache and other places where data from your geli-encrypted file system might be
present. But to get rid of those stopping processes and unmounting file system
won't help either - you have to turn your laptop off. Be warned.

Also note, that suspending geli device which contains file system with geli
utility (or anything used by 'geli resume') is not very good idea, as you won't
be able to resume it - when you execute geli(8), the kernel will try to read it
and this read I/O request will be suspended.
2010-10-20 20:50:55 +00:00
..
amd64 Update pmap_extract() to handle 1GB page mappings. Some device drivers 2010-10-15 15:23:34 +00:00
arm Set of legacy mode SATA enchancements: 2010-10-18 11:30:13 +00:00
boot Correct typos. 2010-10-20 19:52:27 +00:00
bsm
cam Decrease poll interval from 1000 to 100us. This significantly reduces 2010-09-22 05:17:18 +00:00
cddl zfs: add vop_getpages method implementation 2010-10-16 20:43:05 +00:00
compat Remove stale comment. 2010-10-14 19:30:44 +00:00
conf Improve the Xen para-virtualized device infrastructure of FreeBSD: 2010-10-19 20:53:30 +00:00
contrib Merge ACPICA 20101013. 2010-10-13 21:37:02 +00:00
crypto Change two missed instances of 'retq' in aeskeys_i386.S to 'retl', which 2010-10-13 17:55:53 +00:00
ddb One more use for _SIG_VALID. 2010-07-12 10:18:10 +00:00
dev Introduce a new tunable 'hw.pci.do_power_suspend'. This tunable lets you 2010-10-20 16:47:09 +00:00
fs Fix the type of the 3rd argument for nm_getinfo so that it works 2010-10-19 11:55:58 +00:00
gdb there must be only one SYSINIT with SI_SUB_RUN_SCHEDULER+SI_ORDER_ANY order 2010-09-30 17:05:23 +00:00
geom Bring in geli suspend/resume functionality (finally). 2010-10-20 20:50:55 +00:00
gnu The r184588 changed the layout of struct export_args, causing an ABI 2010-10-10 07:05:47 +00:00
i386 Improve the Xen para-virtualized device infrastructure of FreeBSD: 2010-10-19 20:53:30 +00:00
ia64 Fix bogus error message from bus_dmamem_alloc() about incorrect alignment. 2010-09-29 21:53:11 +00:00
isa bus_add_child: change type of order parameter to u_int 2010-09-10 11:19:03 +00:00
kern - Don't include sx.h, it is not needed. 2010-10-20 00:41:38 +00:00
kgssapi
libkern Make the RPC specific __rpc_inet_ntop() and __rpc_inet_pton() general 2010-09-24 15:01:45 +00:00
mips Network driver updates 2010-10-20 09:50:11 +00:00
modules Fix an undefined behaviour if the desired ratectl algo is not available. 2010-10-19 18:49:26 +00:00
net Close a race acquiring the IF_ADDR_LOCK() for each entry while iterating 2010-10-16 19:25:27 +00:00
net80211 Fix an undefined behaviour if the desired ratectl algo is not available. 2010-10-19 18:49:26 +00:00
netatalk
netgraph When calling panic(), always pass a format string. 2010-10-13 17:21:21 +00:00
netinet mdoc: drop even more redundant .Pp calls 2010-10-19 12:35:40 +00:00
netinet6 Purposely tell the compiler that we ignore the return value of ADDCARRY() 2010-10-13 10:45:22 +00:00
netipsec Remove dead code: 2010-10-14 15:15:22 +00:00
netipx
netnatm
netncp
netsmb
nfs Fix the type of the 3rd argument for nm_getinfo so that it works 2010-10-19 11:55:58 +00:00
nfsclient Fix the type of the 3rd argument for nm_getinfo so that it works 2010-10-19 11:55:58 +00:00
nfsserver When readdirplus() is handled on the exported filesystem that does 2010-10-19 08:55:31 +00:00
nlm Modify the NFS clients and the NLM so that the NLM can be used 2010-10-19 00:20:00 +00:00
opencrypto Add support for AES-XTS. 2010-09-23 11:52:32 +00:00
pc98 Remove trailing ", " from `sysctl machdep.idle_available' output. 2010-10-12 20:53:12 +00:00
pci Convert the PHY drivers to honor the mii_flags passed down and convert 2010-10-15 14:52:11 +00:00
powerpc Add three new drivers for fan control and temperature reading on the 2010-10-15 20:08:16 +00:00
rpc Fix the krpc so that it can handle NFSv3,UDP mounts with a read/write 2010-10-13 00:57:14 +00:00
security Replace sbuf_overflowed() with sbuf_error(), which returns any error 2010-09-10 16:42:16 +00:00
sparc64 - Wrap exchanging td_intr_frame and calling the event timer callback in 2010-10-19 19:44:05 +00:00
sun4v Just use the sparc64 version of this header rather than duplicating it. 2010-10-08 14:50:58 +00:00
sys Rename boot() to kern_reboot() and make it visible outside of 2010-10-18 04:30:27 +00:00
teken Make ^L with cons25 and origin mode bit more sane. 2010-08-09 18:07:15 +00:00
tools Add an extra comment to the SDT probes definition. This allows us to get 2010-08-22 11:18:57 +00:00
ufs The r184588 changed the layout of struct export_args, causing an ABI 2010-10-10 07:05:47 +00:00
vm PG_BUSY -> VPO_BUSY, PG_WANTED -> VPO_WANTED in manual pages and comments 2010-10-20 05:17:23 +00:00
x86 atrtc: remove (pre-)historic check of RTC NVRAM at address 0x0e 2010-10-16 10:45:36 +00:00
xdr
xen Improve the Xen para-virtualized device infrastructure of FreeBSD: 2010-10-19 20:53:30 +00:00
Makefile