opnsense-src/sys
Allan Jude 4deb8929ea Make boot code and loader check for unsupported ZFS feature flags
OpenZFS uses feature flags instead of a zpool version number to track
features since the split from Oracle. In addition to avoiding confusion
on ZFS vs OpenZFS version numbers, this also allows features to be added
to different operating systems that use OpenZFS in different order.

The previous zfs boot code (gptzfsboot) and loader (zfsloader) blindly
tries to read the pool, and if failed provided only a vague error message.

With this change, both the boot code and loader check the MOS features
list in the ZFS label and compare it against the list of features that
the loader supports. If any unsupported feature is active, the pool is
not considered as a candidate for booting, and a helpful diagnostic
message is printed to the screen. Features that are merely enabled via
zpool upgrade, but not in use, do not block booting from the pool.

Submitted by:	Toomas Soome <tsoome@me.com>
Reviewed by:	delphij, mav
Relnotes:	yes
Differential Revision:	https://reviews.freebsd.org/D6857
2016-08-01 19:37:43 +00:00
..
amd64 amd64: implement pagezero using rep stos 2016-07-31 11:34:08 +00:00
arm Split out the FDT parts of the GICv2 interrupt controller driver. This will 2016-08-01 16:29:04 +00:00
arm64 Add a kernel variable to let the user to select their preferred order 2016-08-01 12:17:44 +00:00
boot Make boot code and loader check for unsupported ZFS feature flags 2016-08-01 19:37:43 +00:00
bsm
cam Move protocol specific stuff into a linker set object that's 2016-07-28 22:55:21 +00:00
cddl Make boot code and loader check for unsupported ZFS feature flags 2016-08-01 19:37:43 +00:00
compat Don't create pointless backups of generated files in "make sysent". 2016-07-28 21:29:04 +00:00
conf Split out the FDT parts of the GICv2 interrupt controller driver. This will 2016-08-01 16:29:04 +00:00
contrib Remove usage of _WITH_DPRINTF 2016-07-30 01:16:06 +00:00
crypto Connect the SHA-512t256 and Skein hashing algorithms to ZFS 2016-05-31 04:12:14 +00:00
ddb Rewrite subr_sleepqueue.c use of callouts to not depend on the 2016-07-28 09:09:55 +00:00
dev Sync CFE interface with upstream cfe-1.4.2 release. 2016-08-01 16:26:08 +00:00
fs Remove write-only variable. 2016-07-29 12:15:55 +00:00
gdb
geom Do not invoke resize method if geom is being withered. 2016-07-25 09:12:08 +00:00
gnu Revert changes for local testing, inadvertantly commited in r300811. 2016-05-26 23:59:42 +00:00
i386 Don't create pointless backups of generated files in "make sysent". 2016-07-28 21:29:04 +00:00
isa sys/isa: minor spelling fixes. 2016-05-03 21:51:52 +00:00
kern locks: change sleep_cnt and spin_cnt types to u_int 2016-07-31 12:11:55 +00:00
kgssapi kgssapi: insignificant spelling fix. 2016-05-03 22:05:03 +00:00
libkern sys: Make use of our rounddown() macro when sys/param.h is available. 2016-04-30 14:41:18 +00:00
mips [mips/broadcom] Fetch UART console configuration from CFE. 2016-08-01 16:29:32 +00:00
modules netgraph module for reconstructing checksums 2016-08-01 12:09:04 +00:00
net Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
net80211 [net80211] teach AMRR to log the initial MCS rate as "MCS X" 2016-07-01 19:58:13 +00:00
netgraph netgraph module for reconstructing checksums 2016-08-01 12:09:04 +00:00
netinet Rework IPV6 TCP path MTU discovery to match IPv4 2016-08-01 17:02:21 +00:00
netinet6 Rework IPV6 TCP path MTU discovery to match IPv4 2016-08-01 17:02:21 +00:00
netipsec Get closer to a VIMAGE network stack teardown from top to bottom rather 2016-06-21 13:48:49 +00:00
netnatm kernel: use our nitems() macro when it is available through param.h. 2016-04-19 23:48:27 +00:00
netpfil Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
netsmb sys/net*: minor spelling fixes. 2016-05-03 18:05:43 +00:00
nfs Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
nfsclient
nfsserver
nlm When sleeping waiting for either local or remote advisory lock, 2016-06-26 20:08:42 +00:00
ofed sdp: Destroy the RDMA ID after destroying the connection's queue pair. 2016-07-29 21:03:02 +00:00
opencrypto sys/opencrypto: minor spelling fixes. 2016-05-06 23:37:19 +00:00
pc98 Move 'device pci' for the PCI bus driver to the MI NOTES file. 2016-04-29 23:53:55 +00:00
powerpc Use label math instead of hard-coding offsets for return addresses. 2016-07-23 02:27:42 +00:00
riscv Update comments for the MD functions managing contexts for new 2016-06-16 12:05:44 +00:00
rpc Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
security Add AUE_WAIT6 handling to the BSM conversion switch statement, reusing 2016-07-11 13:06:17 +00:00
sparc64 Update comments for the MD functions managing contexts for new 2016-06-16 12:05:44 +00:00
sys Remove BSD and USL copyright and update license block in in_prot.c, as the 2016-07-28 18:39:30 +00:00
teken
tests
tools
ufs Ensure that the UFS directory vnode' vm_object is properly sized 2016-07-20 14:40:56 +00:00
vm Restore the historical behavior of "sysctl vm.swap_idle_enabled=1". Prior 2016-08-01 17:25:07 +00:00
x86 Revert r291022: x86/intr: allow mutex recursion in intr_remove_handler 2016-07-29 16:35:58 +00:00
xdr RPC: for pointers replace 0 with NULL. 2016-04-14 17:06:37 +00:00
xen xen: Correct typo in #undef for symbol NBPL 2016-06-06 14:55:46 +00:00
Makefile