hammer2 - flush sequencing part 5 - more flush synchronization work

* Get rid of chain->parent, replacing it with chain->above which is a
  pointer to the core common to the possibly multiple parents.  Due
  to the multi-parenting, chain->parent was rather ad-hoc so getting
  rid of makes the code more clear.

* Adjust several APIs which used to take a locked parent of chain to
  instead take the core common to multiple parents of chain.

* Rework how CHAIN_MOVED is cleared.  The code works better but still
  has bugs which can leave chains hanging and unflushed on umount.

* Rework the lastdrop function significantly.

* Continue working on automatic delete/duplicate operation when a
  modification crosses a synchronization boundary.  This code is now
  mostly implemented.

* Continue working on the flush filter which is responsible for
  differentiating modifications made before and after the synchronization
  point.  The filter is now mostly implemented.

* Use spinlock protection on the rbtree, allowing manipulation of children
  without having to lock a specific parent chain (which wouldn't help much
  anyway since there can be more than one parent).

* Fix numerous assertions and panics.
bnx: Use different RX coalesce BDs for polling and interrupt mode

The value set by this commit for polling mode improves tiny packets
forwarding performance by +250Kpps in normal mode and +120Kpps in
fast mode.
Add "SECURITY CONSIDERATIONS" to the mdoc template

Obtained from: FreeBSD
Update dutch calendar

On 30 April 2013 queen Beatrix resigned and crownprince Willem Alexander
became the new king. King's day is on 27 April.

Obtained From: FreeBSD (r250198)
hammer2 - flush sequencing part 6 - stabilization pass

* Fix bug when chains are e.g. delete/duplicated where a flush can occur
  out of order and retire more recent chain structures leaving older
  CHAIN_DELETED structures behind.  This caused the merged chain_find
  and lookup/iteration code to improperly believe a slot was empty when
  in fact the parent's bref array had a valid blockref.

  Fixed by flagging the discrete chain->next_parent linkages with
  CHAIN_IPACTIVE and adding a ref to the chain, which prevents them
  from being retired out of order.  This is currently being done
  unconditionally (and probably has to be done unconditionally).

* Fix bug related to the clearing of SUBMODIFIED during a flush.  Generally
  speaking a flush pass clears SUBMODIFIED if no children were deferred.

  The bug is that higher-level indirect-block chains closer to the root
  are typically only modified during the flush as the deeper chains are
  flushed recursively and rolled up into the parents on the way back up.
  Because of this, these higher-level chains could represent more than one
  flush synchronization point.  When this situation is detected we now
  set SUBMODIFIED here too.

* Consolidate ip->chain adjustments into the hammer2_inode_repoint()
  procedure.  Remove hammer2_inode_put().

* Cleanup some #if 0'd code that I won't be using.
Add option 'dmesg -c' which clears the kernel buffer after it is printed.

Tested by:	swildner
Merge branch 'master' into gsocdrm_jfree
Update tcsh from 6.17.00 to 6.18.01 on the vendor branch
Merge branch 'vendor/TCSH'

Conflicts:
	contrib/tcsh-6/sh.decls.h
tcsh: Add more local modifications

- Remove whitespace from existing local modifications of tcsh.
- Remove two unused variables which break the build with -Werror.
- Disable format warning completely because every xprintf with %S
  parameter breaks the build (it wants the argument to be cast to
  wchar_t* rather than the provided Char*).
tcsh: Update from version 6.17.00 to 6.18.01

There were 8 releases since the last tcsh update.
The changes of each are listed below.

When the output of "csh --version" is compared to the previous version,
two differences are noticed.  The first is dpsm is not showing.  This is
correct because it cannot be set simultaneously with widestar as it was.
The second difference is the system malloc is no longer used.  The
sources inside say system malloc can be significantly slower and that
memory statistics will not be available if used.  It also went to pains
to remove the option even if hard-coded in config_p.h.

The identifier for --version was fixed for x86_64 platform by
updating host.defs file.

V6.18.01 - 20120214
  5. fix interruptible wait again
  4. ignore bogus compiler overflow message
  3. cleanup ifdefs in utmp code, and provide default array entries
  2. Ignore #machine entries in host.defs
  1. Detect missing ) in gethost.c (Corinna Vinschen)

V6.18.00 - 20120114
103. remove unused variables.
102. Make gethost use definitions for x __x__ and __x automatically.
101. More utmp fixes
100. V6.17.10 - 20120105
 99. Add more FreeBSD/NetBSD machines
 98. Add portability wrapper for gencat
 97. Fix warning for write in SYSMALLOC systems.
 96. V6.17.09 - 20120102
 95. revert gencat handling to pre-cygwin fixes (without env settings)
 94. remove stray endutent()
 93. V6.17.08 - 20111230
 92. Remove - from gencat
 91. Provide support for malloc_usable_size() so that linux works again
     without SYSMALLOC
 90. Add support for FreeBSD's utmpx.

V6.17.07 - 20111227
 88. Fix debian bug #645238: tcsh segfaults when prompt includes %j and
     there are more than 10 jobs.
 87. PR/155: Default $anyerror to set for backward compatibility
 86. PR/149: Don't print -1 in %j (Vojtech Vitek)
 85. handle -- on chdir commands as the end of options processing so that
     they can process a directory like -x without resorting to ./-x
     (Andrew Stevenson)
 84. Handle write(2) returning ENOENT from SoFS, thanks ++HAL (R. Byrnes)
 83. PR/38: Null check for jobs (Kurt Miller)
 82. Fix spelling correction correcting ./foo -> ../foo2 (jean-luc leger)
 81. PR/120: string0 in filetest does not have enough space.
 80. V6.17.06 - 20110415
 79. PR/110: Add $anyerror to select behavior. Default to the new one.
 78. Don't try to spell commands that are correct (Rouben Rostamian)
     [./tcsh -f; set path=($path 2); mkdir foo2; cd foo2; touch foo;
      chmod +x foo; set correct=cmd; ./foo -> ../foo]
 77. Don't push syntax struct on the cleanup stack, because on foo;bar
     if foo fails, we will free bar prematurely (Ben Miller)
 76. Avoid infinite loop while trying to print pid of a dying process
     to a closed file (Bob Arendt)
 75. Handle completion of ${ variables (Anthony Mallet)
 74. Add --disable-nls-catalogs (Corinna Vinschen)
 73. convert message catalogs to UTF-8 (Werner Fink)
 72. check that the NLS path works before setting $NLSPATH.
 71. use SYSMALLOC for GLIBC (Werner Fink)
 70. use mallinfo for SYSMALLOC (Corinna Vinschen)

V6.17.05 - 20110201
 68. Use mkstemp() if there for here docs (Werner Fink)
 67. Fix handling of errors and exit values in builtins (Werner Fink)
 66. Better pty name detection (Werner Fink)
 65. Enable NLS catalogs on Cygwin (Corinna Vinschen)
 64. NLSPATH handling fixes (Corinna Vinschen)
 63. Avoid infrequent exit when tcsh cd's into a non-existent directory
     https://bugzilla.novell.com/show_bug.cgi?id=293395 (Werner Fink)
 62. Don't try to spell check full path binaries that are correct because
     they can cause hangs when other nfs partitions are hung. (W. Fink)
 61. Avoid nested interrupts when exiting causing history writing to fail
     https://bugzilla.novell.com/show_bug.cgi?id=331627 (Werner Fink)
 60. Instead of giving an error or ignoring lines with missing eol at eof,
     process them.
 59. Avoid leaking fd's in mail check (Werner Fink)
 58. Add cygwin_xcrypt() (Corinna Vinschen)
 57. Recognize i686 (Corinna Vinschen)
 56. Rename cygwin32 to cygwin and bring it up-to-date with modern cygwin
     settings (Corinna Vinschen)
 55. Avoid double slashes in cdpath (Corinna Vinschen)

V6.17.04 - 20110118
 53. Revert PR/110, breaks the test suite.

V6.17.03 - 20110117
 51. PR/102: Complain on input files with missing trailing \n
 50. PR/104: If atime == mtime we don't have new mail.
 49. PR/113: Don't allow illegal variable names to be set.
 48. PR/112: don't set $REMOTEHOST on the local machine.
 47. PR/110: exit status of the pipeline should be status of last command.
 46. Android support (Corinna Vinschen)
 45. Add AUTOSET_KANJI which works around the Shift-JIS encoding that
     translates unshifted 7 bit ASCII (Werner Fink)
 44. Handle mb{r,}towc() returning 0 by setting the return value to NUL
     (Jean-Luc Leger)
 43. PR/109: make wait interruptible (Vojtech Vitek)
 42. resource limit fixes: signed vs. unsigned, megabyte issue, doc issues
     (Robert Byrnes)
 41. remove .bat and .cmd handling for executables on cygwin (C. Vinschen)
 40. Don't echo history while history -L or history -M
 39. Check for EOS before ** from Greg Dionne
 38. Don't fork in backeval from Bryan Mason
 37. Better globstar support from Greg Dionne
 36. Error out when processing the last incomplete line instead of
     silently ignoring it (Anders Kaseorg)
 35. Fix SEGV from echo ``
 34. Better fixes for histchars and promptchars (nargs)
 33. Fix win32 issue calling fmalloc/ffree from non-thread-safe context.
     (Fabio Fabbri)

V6.17.02 - 20100512
 31. PR/79: nargs: Better handling for promptchars.
 30. PR/97: Add parseoctal to retain compatibility with previous versions
     (Jim Zajkowski)
 29. PR/84: Performance fixes for large history merges (add
     hashtable (Ted Anderson)
 28. Revert previous #23; people should use $histlit if they want this
     feature.
 27. Don't kill "hup" background jobs when a child of the shell exits.
     From Debian.
 26. Ignore \r\n in the command line options for OS's that don't strip
     these from #!; from Debian
 25. Fix enhanced missing patch (Greg Dionne)
 24. Callers of rt_mbtowc don't grok -2 as a return. Return -1 for now.
     (Corinna Vinschen)
 23. Turn HistLit on while recording history to avoid \!\! losing its \.
     From Debian
 22. set autoexpand; set histchars="";\n<tab> crash. From Debian

V6.17.01 - 20100506
 20. unset verbose while we are reading the history file to avoid echoing
     to the terminal. (Jeffrey Bastian)
 19. globstar addition, Enhance addition, euid, euser, gid variables
     (Greg Dionne)
 18. Make 'e' in vi mode work like 'b' - use wordchars (Alistair Crooks)
 17. Handle UTF-16 surrogates (Corinna Vinschen)
 16. Make tcsh work on systems where sizeof(wchar_t) == 2 (C. Vinschen)
 15. Better support for Solaris >= 2.9 (Thomas Uhle)
 14. Change internal expression calculations to long long so that we can
     deal with > 32 bit time, inodes, uids, file sizes etc.
 13. Add new linux resource limits.
 12. Don't print 'Exit X' when printexitvalue is set in `` expressions
     (Jeff Bastian)
 11. Add more LS_COLORS vars (M.H. Anderson)
 10. Reduce whitespace in Makefile (Don Estabrook)
  9. Manual page fixes (Alan R. S. Bueno)
  8. Remove history in loops bug from the documentation (Holger Weiss)
  7. Add autorehash (Holger Weiss)
  6. Add history.at (Ted Anderson)
  5. Better NLSPATH handling (Norm Jacobs)
  4. Fix hostname building from utmp (Cyrus Rahman)
  3. Handle pending signals before flush so that the the history file
     does not get truncated.  (Ted Anderson)
  2. Fix AsciiOnly setting that broke 8 bit input. (Juergen Keil)
  1. remember to closedir in mailchk (from Werner Fink, reported by
     David Binderman)
Merge branch 'master' into gsocdrm_github