Misc personal changes
Commits:
  * Add some ignores (among them pkg files).
  * Indicate full 'path' (latest git commit date
    and all patches) in the Release tag.
  * Remove duplicate (empty) 'rpm-modules' target.
  * Add --keep-version to alien run (so that the packages won't
    be named 'VERSION-1' every single time!).
  * Compile zvol_id without CFLAGS to avoid strange behaviour.
    Quick, dirty fix.
  * Add locale.h include to be able to compile.
  * Update release version.
  * Keep cmd/zvol_id/Makefile.in (might be overwritten by
    a autogen.sh though!!) - remove CFLAGS so that zvol_id
    won't give garbage.
Merge with master.
* Remove hard-coded 80 column output
  When stdout is detected to be a tty use the number of columns
  specified by the terminal.  If that fails fall back to a default
  80 column width.  In the non-tty case allow for 999 column lines.
* Properly expose the mfu ghost list kstats
  Due to a typo the mru ghost lists stats were accidentally being
  exposed as the mfu ghost list stats.  This was harmless but
  confusing since memory usage could be over reported.
* Print human readable error message for ENOENT
  A cryptic error code is printed when mounting a legacy dataset to a
  non-existent mountpoint. This patch changes this behavior to print
  "mount point '%s' does not exist", which is similar to the error
  message printed when mounting procfs.
  The single quotes were added to be consistent with the existing EBUSY
  error message, which is the only difference between this error message
  and the one that is printed when the same condition occurs when mounting
  procfs.
  Closes #633
* Make Gentoo initscript use modinfo
  The -l parameter to modprobe has been removed from the latest upstream
  code and this change has entered Gentoo. Using modinfo as a substitute
  addresses this.
  Closes #636
* Fixed a NULL pointer dereference bug in zfs_preumount
  When zpl_fill_super -> zfs_domount fails (e.g. because the dataset
  was destroyed before it could be successfully mounted) the subsequent
  call to zpl_kill_sb -> zfs_preumount would derefence a NULL pointer.

  This bug can be reproduced using this shell script:

   #!/bin/sh
   (
   while true; do
   	zfs create -o mountpoint=legacz tank/bar
   	zfs destroy tank/bar
   done
   ) &

   (
   while true; do
   	mount -t zfs tank/bar /mnt
   	umount /mnt
   done
   ) &

  Closes #639
* Export additional dsl symbols
  Principly these symbols were exported to get access to the
  dsl_prop_register/dsl_prop_unregister functions.  They allow
  us to cleanly register a callback which is called when a
  dataset property is modified.
* Document the zle compression algorithm
* Improve error message consistency
* Illumos #1680: zfs vdev_file_io_start: validate vdev before using vdev_tsd
  vdev_tsd can be NULL for certain vdev states.
  At least in userland testing with ztest.
  References to Illumos issue:
    https://www.illumos.org/issues/1680
  Closes #655
* OS-926: zfs panic in zfs_fill_zplprops_impl()
  This change appears to be exclusive to SmartOS. It is not present in
  illumos-gate but it just adds some needed error handling.  This is
  clearly preferable to simply ASSERTING which is what would occur
  prior to the patch.
  Closes #652
* Illumos #1951: leaking a vdev when removing an l2cache device
  1952 memory leak when adding a file-based l2arc device
  1954 leak in ZFS from metaslab_group_create and zfs_ereport_checksum
  References to Illumos issues:
    https://www.illumos.org/issues/1951
    https://www.illumos.org/issues/1952
    https://www.illumos.org/issues/1954
  Closes #650
* Illumos #1475: zfs spill block hold can access invalid spill blkptr
  References to Illumos issue:
    https://www.illumos.org/issues/1475
  Closes #648
* Illumos #1346: zfs incremental receive may leave behind temporary clones
  1356 zfs dataset prefetch code not working
  References to Illumos issue:
    https://www.illumos.org/issues/1346
    https://www.illumos.org/issues/1356
  Closes #647
* ZFS snapshot alias
  For consistency, and because it's handy, add the 'zfs snap' alias which
  was introduced by Oracle Solaris 11.  This includes an update to the
  man page to reflect all the available alias (snap, umount, and recv).
  Closes #640
* ZFS list snapshot property alias
  Add support for the `zfs list -t snap` alias which is available under
  Oracle Solaris 11.
  Closes #640
* Use KM_PUSHPAGE in l2arc_write_buffers
  There is potential for deadlock in the l2arc_feed thread if KM_PUSHPAGE
  is not used for the allocations made in l2arc_write_buffers.
  Specifically, if KM_PUSHPAGE is not used for these allocations, it is
  possible for reclaim to be triggered which can cause the l2arc_feed
  thread to deadlock itself on the ARC_mru mutex. An example of this is
  demonstrated in the following backtrace of the l2arc_feed thread:

      crash> bt 4123
      PID: 4123   TASK: ffff88062f8c1500  CPU: 6   COMMAND: "l2arc_feed"
        0 [ffff88062511d610] schedule at ffffffff814eeee0
        1 [ffff88062511d6d8] __mutex_lock_slowpath at ffffffff814f057e
        2 [ffff88062511d748] mutex_lock at ffffffff814f041b
        3 [ffff88062511d768] arc_evict at ffffffffa05130ca [zfs]
        4 [ffff88062511d858] arc_adjust at ffffffffa05139a9 [zfs]
        5 [ffff88062511d878] arc_shrink at ffffffffa0513a95 [zfs]
        6 [ffff88062511d898] arc_kmem_reap_now at ffffffffa0513be8 [zfs]
        7 [ffff88062511d8c8] arc_shrinker_func at ffffffffa0513ccc [zfs]
        8 [ffff88062511d8f8] shrink_slab at ffffffff8112a17a
        9 [ffff88062511d958] do_try_to_free_pages at ffffffff8112bfdf
       10 [ffff88062511d9e8] try_to_free_pages at ffffffff8112c3ed
       11 [ffff88062511da98] __alloc_pages_nodemask at ffffffff8112431d
       12 [ffff88062511dbb8] kmem_getpages at ffffffff8115e632
       13 [ffff88062511dbe8] fallback_alloc at ffffffff8115f24a
       14 [ffff88062511dc68] ____cache_alloc_node at ffffffff8115efc9
       15 [ffff88062511dcc8] __kmalloc at ffffffff8115fbf9
       16 [ffff88062511dd18] kmem_alloc_debug at ffffffffa047b8cb [spl]
       17 [ffff88062511dda8] l2arc_feed_thread at ffffffffa0511e71 [zfs]
       18 [ffff88062511dea8] thread_generic_wrapper at ffffffffa047d1a1 [spl]
       19 [ffff88062511dee8] kthread at ffffffff81090a86
       20 [ffff88062511df48] kernel_thread at ffffffff8100c14a
* Illumos #1909: disk sync write perf regression when slog is used post oi_148
  Refererces to Illumos issue:
    https://www.illumos.org/issues/1909
  Closes #680
* Illumos #952: separate intent logs should be obvious in 'zpool iostat' output
  Refererce to Illumos issue:
    https://www.illumos.org/issues/952
  Closes #607
* Illumos #1946: incorrect formatting when listing output of multiple pools with zpool iostat -v
  Reference to Illumos issue:
    https://www.illumos.org/issues/1946
* Illumos #2067: uninitialized variables in zfs(1M) may make snapshots undestroyable
  References:
  	https://www.illumos.org/issues/2067
* Add zfs_mdcomp_disable module option
  Expose the zfs_mdcomp_disable variable as a module option.  This
  can be used to disable compression of zfs meta data which is
  enabled by default.  This shouldn't need to be tuned but for
  most workloads, however there may be very specific instances
  where it makes sense to trade disk capacity for extra cpu cycles.
* Integrate ARC more tightly with Linux
  Under Solaris the ARC was designed to stay one step ahead of the
  VM subsystem.  It would attempt to recognize low memory situtions
  before they occured and evict data from the cache.  It would also
  make assessments about if there was enough free memory to perform
  a specific operation.

  This was all possible because Solaris exposes a fairly decent
  view of the memory state of the system to other kernel threads.
  Linux on the other hand does not make this information easily
  available.  To avoid extensive modifications to the ARC the SPL
  attempts to provide these same interfaces.  While this works it
  is not ideal and problems can arise when the ARC and Linux have
  different ideas about when your out of memory.  This has manifested
  itself in the past as a spinning arc_reclaim_thread.

  This patch abandons the emulated Solaris interfaces in favor of
  the prefered Linux interface.  That means moving the bulk of the
  memory reclaim logic out of the arc_reclaim_thread and in to the
  evict driven shrinker callback.  The Linux VM will call this
  function when it needs memory.  The ARC is then responsible for
  attempting to free the requested amount of memory if possible.

  Several interfaces have been modified to accomidate this approach,
  however the basic user space implementation remains the same.
  The following changes almost exclusively just apply to the kernel
  implementation.

  * Removed the hdr_recl() reclaim callback which is redundant
    with the broader arc_shrinker_func().

  * Reduced arc_grow_retry to 5 seconds from 60.  This is now used
    internally in the ARC with arc_no_grow to indicate that direct
    reclaim was recently performed.  This typically indicates a
    rapid change in memory demands which the kswapd threads were
    unable to keep ahead of.  As long as direct reclaim is happening
    once every 5 seconds arc growth will be paused to avoid further
    contributing to the existing memory pressure.  The more common
    indirect reclaim paths will not set arc_no_grow.

  * arc_shrink() has been extended to take the number of bytes by
    which arc_c should be reduced.  This allows for a more granual
    reduction of the arc target.  Since the kernel provides a
    reclaim value to the arc_shrinker_func() this value is used
    instead of 1<<arc_shrink_shift.

  * arc_reclaim_needed() has been removed.  It was used to determine
    if the system was under memory pressure and relied extensively
    on Solaris specific VM interfaces.  In most case the new code
    just checks arc_no_grow which indicates that within the last
    arc_grow_retry seconds direct memory reclaim occurred.

  * arc_memory_throttle() has been updated to always include the
    amount of evictable memory (arc and page cache) in its free
    space calculations.  This space is largely available in most
    call paths due to direct memory reclaim.

  * The Solaris pageout code was also removed to avoid confusion.
    It has always been disabled due to proc_pageout being defined
    as NULL in the Linux port.
* Update ARC memory limits to account for SLUB internal fragmentation
  23bdb07d4e4c435205d25d3efdb5fef2d089ce5e updated the ARC memory limits
  to be 1/2 of memory or all but 4GB. Unfortunately, these values assume
  zero internal fragmentation in the SLUB allocator, when in reality, the
  internal fragmentation could be as high as 50%, effectively doubling
  memory usage. This poses clear safety issues, because it permits the
  size of ARC to exceed system memory.

  This patch changes this so that the default value of arc_c_max is always
  1/2 of system memory. This effectively limits the ARC to the memory that
  the system has physically installed.
  Closes #660
* Disable direct reclaim on zvols
  Previously, it was possible for the direct reclaim path to be invoked
  when a write to a zvol was made. When a zvol is used as a swap device,
  this often causes swap requests to depend on additional swap requests,
  which deadlocks. We address this by disabling the direct reclaim path
  on zvols.
  Closes #342
* Linux 3.3 compat, iops->create()/mkdir()/mknod()
  The mode argument of iops->create()/mkdir()/mknod() was changed from
  an 'int' to a 'umode_t'.  To prevent a compiler warning an autoconf
  check was added to detect the API change and then correctly set a
  zpl_umode_t typedef.  There is no functional change.
  Closes #701
* Add mdadm and bc dependencies
  The zfs-test package additionally depends on mdadm and bc to
  run the zfault.sh tests.
  Closes #690
* Revert "Disable direct reclaim on zvols"
  This reverts commit ce90208cf9e04df966429f115d8831371ea9afce.  This
  change was observed to cause problems when using a zvol to back a VM
  under 2.6.32.59 kernels.  This issue was filed as #710.
  Issue #342
  Issue #710
* Rebuild with autoconf 2.67.
* Deleted zfs_config.h.in. It's regreated...