kernel - Wakeup p->p_step on procfs close.

* Wakeup p->p_step in addition to p->p_stype on procfs close.

Reported-by: vsrinivas
hammer2 - flush sequencing part 4 - stabilization and cleanup, flush sep

* Fix bugs in the handling of DIRECTDATA.  The data for small
  files <= 512 bytes is stored in the inode itself using the
  area that would otherwise contain the indirect block table.

  Cleanup the flag handling for this data, ensure synchronous bwrite()s
  for this data area (the strategy code for direct-data reads and writes
  doesn't actually do any I/O), and ensure proper read-before-write
  operation.

* Adjust hammer2_inode_create() and hammer2_chain_modify_ip() to take/return
  (*chainp).

* Change the inode locking APIs to return the locked chain (unlocking APIs
  take the locked chain as an argument).  This allows the chain to be
  manipulated by the code inbetween, including replacing it with other
  chains, instead of the mess we had before where ip->chain had an implied
  lock associated with it.

  With this change, replacing ip->chain is just a matter of adjusting
  ref counts and not also having to worry about locks.

* Modify the inode chain proactively instead of indirectly.

* Set HAMMER2_INODE_MODIFIED proactively instead of indirectly.  This flag
  is now only used to filter vfs_sync scans.

* Start working on flush transitions.  hammer2_modify_chain() and friends
  will now delete/duplicate an underlying chain that is already in the
  MODIFIED state (returning the new chain) for the case where the previous
  modifications are associated with a flush-in-progress and the current
  modifications are outside of that flush.

* Add hammer2_chain_delete_duplicate(), a function which combines the
  DELETE and duplication operation in one atomic op.  Otherwise a lookup
  or find can catch such operations in the middle and improperly believe
  that the element is fully deleted when it isn't.

* Fix chain refs in a few places.
Update awk from 20110810 to 20121220 on vendor branch
Merge branch 'vendor/AWK'
awk: Update to version 20121220

* BK added  __attribute__((__noreturn__)) to a couple of lines in
  proto.h, to silence an enthusiastic checker.
* NK fixed obscure call by value bug in split(a[1],a) reported on
  9fans.  the management of temporary values is just a mess; he
  took a shortcut by making an extra string copy.
* tiny fiddle in setfval to eliminate -0 results in T.expr, which
  has irritated BK for 20+ years.

The README.DELETED file was relocated from the vendor branch to
the master branch to be consistent with how most of the vendor
branches are handled.
ifnet: Update and add comment; no functional changes

- Update various comment
- Remove no longer applied comment
- Add comment for ifaddr per-cpu container
- Add comment for per-cpu ifnet and ifaddr statistics
- Add comment for ifnet single serializer mode and multiple serializers
  mode
- Add pseudo code in comment for ifnet multiple transmit queue support
Merge branch 'master' into gsocdrm_alter
busdma: Update manpage about BUS_SPACE_UNRESTRICTED

Reported-by: ftigeot@
Merge branch 'master' into gsocdrm_alter
ip_output: Always panic if the rtentry is not owned by the current cpu

It has been on for several releases; make it mandatory now
ifq: Update comment; no functional changes
tso: Remove the pendantic tso_pullup functions

All of the drivers supporting TSO use the header lengthes stored in mbuf
pkthdr (csum_*hlen) to accelerate the transmit descriptors setup.
ethernet: Update comment; no functional changes
if: Update comment concerning subqueue; no functional changes
devd: Reduce diff with FreeBSD

* Update Warner's copyright

* Log to standard error instead of stdout.

* Add 'const' where possible

* Use pre increment rather than post increment for non-primative types.
devd: Don't call string() explicitly

Obtained from: FreeBSD
devd: Simplify handling of romeo_must_die

Obtained from: FreeBSD
Bring usb-hid-messages up to date

Obtained from: FreeBSD
bnx: Optimize RX STD ring refilling scheduling

At the end of the RX RET ring interrupt, the RX STD ring refilling is
scheduled only when the number of consumed RX BDs are more then half of
the RX STD ring size (256).

This reduces the IPI rate on CPU that performs the RX STD ring refilling
from ~17000ipis/s to ~4000ipis/s on the system with heavy network loading.
bnx: In polling mode, force chip update status block for status changes

If the status block updating is not forced, we will always see staled
status changes in polling mode, which causes bunch of unnecessary register
reading.

For status changes sharing status block with transmission, staled status
changes probably won't linger for too much time, since any data transmit
completion will cause status block to be updated.  However, for status
changes using its own status block, staled status changes will be there
until the chips are stopped.