MFC r262676:

All callers of static method load_nvlist() in spa.c handles error case,
so there is no reason to assert that we won't hit an error.  Instead,
just return that error to caller and have the upper layer handle it.

Obtained from:	FreeNAS
Reported by:	rodrigc
Reviewed by:	Matthew Ahrens
Increment fi_wgen before awakening threads polling the read socket of a
FIFO.  Previously, a thread sleeping in poll() could be awakened and
re-poll the FIFO with the old value of fi_wgen (and thus improperly
setting POLLINIGNEOF) before a thread closing a writable fifo descriptor
bumped fi_wgen.  The end result was that the reading thread in poll()
would never see POLLHUP but could block forever (or until a timeout).

This is a direct commit to 8 and 9 since the FIFO code is implemented
differently in 10.x and later.  The pipe-backed FIFOs in 10 do not have
this bug.
MFC r249559:

Don't leak lock when returning.

PR:	 kern/177888
Submitted by:	Sven-Thorsten Dietrich <sven vyatta com>
MFC r249562:

Fix incomplete printf.

PR:		kern/177889
Submitted by:	Sven-Thorsten Dietrich <sven vyatta com>
MFC r263021:

  Support Last-Modified behind proxies which return UTC instead of GMT.
MFC r257847, r260243: Update aacraid to version 3.2.5.

Approved by:	emaste (co-mentor)
Make it possible to call  VOP_PUTPAGES with shared vnode lock instead
of insisting an exclusive lock.

When VFS_LOCK_DEBUG is enabled and when the underlying file system is
capable of MNT_SHARED_WRITES,  a failed assertion may lead to a panic
because when calling fsync(2),  a.k.a.  sys_fsync() over a vnode with
mmap'ed page,  it will grab a shared lock when underlying file system
is capable,  then call vm_object_page_clean that eventually proceeded
to  vnode_pager_putpages()   that  tries  to do  VOP_PUTPAGES,  where
VOP_PUTPAGES_APV  generated from the declaration asserts the vnode is
always exclusively locked by caller.

This is a direct commit to stable/8 because a majority portion of the
original changeset 257899 (kib), which main goal was an optimization,
was omitted.   We saw the panic independently in a FreeNAS bug ticket
(#4578).
MFC r254587: MFV r254421:

Illumos ZFS issues:
  3996 want a libzfs_core API to rollback to latest snapshot
MFC r259811: MFV r258373:

4168 ztest assertion failure in dbuf_undirty

4169 verbatim import causes zdb to segfa
4170 zhack leaves pool in ACTIVE state

illumos/illumos-gate@7fdd916c474ea52896c671bbe7b56ba34a1ca132
MFC r259813 + r259816: MFV r258374:

4171 clean up spa_feature_*() interfaces

4172 implement extensible_dataset feature for use by other zpool
features

illumos/illumos-gate@2acef22db7808606888f8f92715629ff3ba555b9
MFC r260138: MFV r242733:

3306 zdb should be able to issue reads in parallel
3321 'zpool reopen' command should be documented in the man page
and help message

illumos/illumos-gate@31d7e8fa33fae995f558673adb22641b5aa8b6e1

FreeBSD porting notes: the kernel part of this changeset depends
on Solaris buf(9S) interfaces and are not really applicable for
our use.  vdev_disk.c is patched as-is to reduce diverge from
upstream, but vdev_file.c is left intact.
MFC r260141: MFV r258385:

(Note: this change is not applicable to FreeBSD and the file
is not included in build.  It's integrated for completeness).

4128 disks in zpools never go away when pulled

illumos/illumos-gate@39cddb10a31c1c2e66aed69e6871d09caa4c8147
MFC r260150: MFV r259170:

4370 avoid transmitting holes during zfs send

4371 DMU code clean up

illumos/illumos-gate@43466aae47bfcd2ad9bf501faec8e75c08095e4f

NOTE: Make sure the boot code is updated if a zpool upgrade is
done on boot zpool.
MFC r260157: MFV r260153:

4121 vdev_label_init should treat request as succeeded when pool
     is read only

illumos/illumos-gate@973c78e94bf9634782164382c9e291bf81161fa5
MFC r260181:

Fix build on platforms where atomic_swap_64 is not available.
MFC r256999 (smh):

Added support for the 'zfs list -t snap' and 'zfs snap' aliases which are
available under Oracle Solaris 11.

This includes an update to the ZFS(8) man page to reflect all the
available alias (snap, umount, and recv).

Initial changes obtained from ZFS On Linux + fixes for man page and cmd
help:
https://github.com/zfsonlinux/zfs/commit/10b75496bb0cb7a7b8146c263164adc37f1d176a
https://github.com/zfsonlinux/zfs/commit/cf81b00a73fe47fdb21586ac1cc179b734540973

Obtained from:  https://github.com/zfsonlinux/zfs
MFC r259850: MFV r258384:

2583 Add -p (parsable) option to zfs list

illumos/illumos-gate@43d68d68c1ce08fb35026bebfb141af422e7082e
MFC r254755: MFV r254748:

Fix memory leak in libzfs's iter_dependents_cb().

Illumos ZFS issues:
  4061 libzfs: memory leak in iter_dependents_cb()
MFC r260183:

MFV r260154 + 260182:

4369 implement zfs bookmarks
4368 zfs send filesystems from readonly pools

Illumos/illumos-gate@78f171005391b928aaf1642b3206c534ed644332
Add Solaris's common/zfs to include search path.