MFC r251872:
Be sure to actually decrement the "count" parameter for each processed
descriptor so that we return when the threshold has been reached.
MFC r251478: MFV r251474:

 * Illumos zfs issue #3137 L2ARC compression

Whether or not to compress buffers entering the L2ARC is
controlled by "compression" setting on the dataset, when
compression is not "off", L2ARC compression is enabled.

The compress method is always LZ4 for L2ARC when enabled
because it works best for the scenario.
MFC r251520: MFV r251519:

 * Illumos ZFS issue #3805 arc shouldn't cache freed blocks
Merge r243151:
  o Remove meaningless PROTOCOLS section.
  o Describe passing file descriptors as separate section.
    - Descriptors can be passed through any protocol of the UNIX family,
      not SOCK_STREAM and SOCK_SEQPACKET only. [1]
  o Describe socket options as separate section.
    - Move LOCAL_PEERCRED option to this section.
    - Describe struct xucred.
    - In LOCAL_CREDS section mention that credentials
      are passed only on the first read on non-datagram
      sockets.
  o Xref all mentioned system calls.

  Noticed by:   Igor Sysoev [1]
Merge r243569, r243601:
  Re-initialize eh pointer after m_adj(), after ng_ether(4) and
  if_bridge(4) processing.

  Submitted by: Kohji Okuno <okuno.kohji jp.panasonic.com>
  Reviewed by:  yongari
Merge r247910:
  Plug a memory leak.

  Reviewed by:  mav
  Sponsored by: Nginx, Inc.
Merge r247911,r248187,r248254,r250797:

Various quirks to enable headphones redirection on
various Lenovo laptops: X220, X1, X1 Carbon, T420,
T430, T430S, T520.
Merge r248155:
  Reinitialize eh after pfil(9) processing.

  PR:           176764
  Submitted by: adri
Merge r248158:
  Remove LIBALIAS_LOCK_ASSERT(), including a couple with an uninitialzed
  argument, in code that isn't compiled in kernel.

  PR:           kern/176667
  Sponsored by: Nginx, Inc.
Merge r248159:
  Fix for quite a special case when userland emulates a netgraph node, and
  userland can reply to a message with NGM_HASREPLY bit set. In this case
  we should not wait for a response to a responce.

  PR:           176771
  Submitted by: Keith Reynolds <keith.reynolds tidalscale.com>
Merge r248160:
  Fix spelling.

  PR:           176777
  Submitted by: Andrey Simonenko <simon comsys.ntu-kpi.kiev.ua>
Merge r248370:
  Belatedly remove the vinum(4) manual page. The vinum
  manager is absent in FreeBSD since 6.0-RELEASE.

  Reviewed by:  joel
Merge r248489:
  There are actually two different cases when mlock(2) returns
  ENOMEM. Clarify this, taking text from SUS.

  Reviewed by:  kib
Merge r248507:
  iwn(4) doesn't support adhoc mode.

  PR:           misc/177106
  Submitted by: Hiren Panchasara <hiren.panchasara gmail.com>
Merge r248570, 248582:
  Add NGM_NAT_LIBALIAS_INFO command, that reports internal stats
  of libalias instance. To be used in the mpd5 daemon.

  Submitted by: Dmitry Luhtionov <dmitryluhtionov gmail.com>
Merge r249896:
  Restore the ipNetToMedia MIB, that was broken with new ARP commit
  in the r186119.

  Submitted by: Konstantin Kukushkin <dark rambler-co.ru>
Merge r249897:
  Don't free memory that is going to be used as error string.

  PR:           bin/178121
  Submitted by: Garrett Cooper <yaneurabeya gmail.com>
Merge r250039:
  Remove useless ifdef KLD_MODULE from dummynet module unload path. This
  fixes panic on unload.

  Reported by:  pho
MFC 250223,250233:
Similar to 233760 and 236717, export some more useful info about the
kernel-based POSIX semaphore descriptors to userland via procstat(1) and
fstat(1):
- Change sem file descriptors to track the pathname they are associated
  with and add a ksem_info() method to copy the path out to a
  caller-supplied buffer.
- Use the fo_stat() method of shared memory objects and ksem_info() to
  export the path, mode, and value of a semaphore via struct kinfo_file.
- Add a struct semstat to the libprocstat(3) interface along with a
  procstat_get_sem_info() to export the mode and value of a semaphore.
- Teach fstat about semaphores and to display their path, mode, and value.
MFC 251470:
Do not compare the existing mask of a cpuset with a new mask when changing
the mask of a cpuset.  Also, change the cpuset's mask before updating the
masks of all children.  Previously changing a cpuset's mask first required
setting the mask to a super-set of both the old and new masks and then
changing it a second time to the new mask.