MFC r248282, in a modified fashion.  From the original changelog:

	Add currently unused flag argument to the cluster_read(),
	cluster_write() and cluster_wbuild() functions.  The flags to be
	allowed are a subset of the GB_* flags for getblk().

This merge adds a cluster_*_gb() API variant instead of changing the ABI
with an added argument to the existing API.  Most API consumers that were
changed in the original rev have been left un-changed in this merge to
reduce churn.  The mergeinfo is recorded though for future merging
convenience.  This is effectively a no-op for the moment.

Submitted by:	kib, FF
Obtained from:	Netflix
MFC r248504:

	Add a convenience macro bread_gb() to wrap a call to
	breadn_flags(). Comparing with bread(), it adds an argument to pass
	the flags to getblk().

The API implementation of bread() and friends is different in FreeBSD 9,
so this merge is a little more complicated than the original commit.

Submitted by:	kib, FF
Obtained from:	Netflix
MFC 246417,247116,248584:
Rework the handling of stop signals in the NFS client.  The changes in
195702, 195703, and 195821 prevented a thread from suspending while holding
locks inside of NFS by forcing the thread to fail sleeps with EINTR or
ERESTART but defer the thread suspension to the user boundary.  However,
this had the effect that stopping a process during an NFS request could
abort the request and trigger EINTR errors that were visible to userland
processes (previously the thread would have suspended and completed the
request once it was resumed).

This change instead effectively masks stop signals while in the NFS client.
It uses the existing TDF_SBDRY flag to effect this since SIGSTOP cannot
be masked directly.  Instead of setting PBDRY on individual sleeps, change
the VFS_*() and VOP_*() methods to defer stop signals for filesystems which
request this behavior via a new VFCF_SBDRY flag.  Note that this has to be
a VFC flag rather than a MNTK flag so that it works properly with
VFS_MOUNT() when the mount is not yet fully constructed.  For now, only the
NFS clients set this new flag in VFS_SET().

A few other related changes:
- Add an assertion to ensure that TDF_SBDRY doesn't leak to userland.
- When a lookup request uses VOP_READLINK() to follow a symlink, mark
  the request as being on behalf of the thread performing the lookup
  (cnp_thread) rather than using a NULL thread pointer.  This causes
  NFS to properly handle signals during this VOP on an interruptible
  mount.
- Ignore thread suspend requests due to SIGSTOP if stop signals are
  currently deferred.  This can occur if a process is stopped via
  SIGSTOP while a thread is running or runnable but before it has set
  TDF_SBDRY.
MFC 249567: mdoc: remove superfluous paragraph macro.
MFC: less v458.
MFC r250666:

Constify parameters, no functional or binary change.
MFC r250718:

Constify string pointers.
MFC r250050:

Add missing braces.

Submitted by:	Sascha Wildner <saw online de>
Obtained from:	DragonFly
MFC 241492, 241588, 241589, 241590, 241592, 241593, 241603, 241605

Modernize and lock the aha, ahb, adv, adw, bt, and dpt drivers.

Submitted by:	jhb
Obtained from:	Netflix
MFC r241031 (des):

Slight stylification.
MFC r249035:

Replace access to /dev/random with the kernel pseudo-random number
source sysctl(KERN_ARND) and remove the fallback code.

Obtained from:	OpenBSD
MFC r250966:
Fix the data corruption on the swap-backed md. Assign the rv variable a
success code if the pager was not asked for the page.
MFC 250219:
Fix two bugs in the current NUMA-aware allocation code:
- vm_phys_alloc_freelist_pages() can be called by vm_page_alloc_freelist()
  to allocate a page from a specific freelist.  In the NUMA case it did not
  properly map the public VM_FREELIST_* constants to the correct backing
  freelists, nor did it try all NUMA domains for allocations from
  VM_FREELIST_DEFAULT.
- vm_phys_alloc_pages() did not pin the thread and each call to
  vm_phys_alloc_freelist_pages() fetched the current domain to choose
  which freelist to use.  If a thread migrated domains during the loop
  in vm_phys_alloc_pages() it could skip one of the freelists.  If the
  other freelists were out of memory then it is possible that
  vm_phys_alloc_pages() would fail to allocate a page even though pages
  were available resulting in a panic in vm_page_alloc().
MFC 241611:
Fix aha(4) build with i386 LINT (which includes 'device mca').
MFC 246805:
Make VM_NDOMAIN a kernel option so that it can be enabled from a kernel
config file.
MFC r251066:

Fix warnings from newer clang versions about constexpr member functions
not being implicitly const in libc++'s <chrono> header.  The warnings
have been introduced because of new language rules recently adopted by
the C++ WG.  More info:

<http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3598.html>
MFC: r249203 (partial)

- Make ata_str2mode() static, it's not used outside of ata-all.c.
- Move ata_timeout() to ata-all.c so we don't need to expose both this
  function and ata_cam_end_transaction() but only the former.
- Move ata_cmd2str() from ata-queue.c to ata-all.c.
- Add some missing prototypes.
MFC r251033:
When handling an exception from the attempt from loading the faulting
context on return from the trap handler, re-enable the interrupts on
i386 and amd64.
MFC r251035:
When reporting the fault details, also print %rsp.r251035:
When reporting the fault details, also print %rsp.
MFC r251037:
The ia32_get_mcontext() does not need to set PCB_FULL_IRET.