kernel - Fix two UFS+softupdates bugs
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 16 Aug 2012 01:14:27 +0000 (18:14 -0700)
committerVenkatesh Srinivas <me@endeavour.zapto.org>
Thu, 16 Aug 2012 01:49:44 +0000 (18:49 -0700)
commite4a7dee1e26a4b4c1b7068f69d5e1453a813621c
tree833156c596c6dd9d47781043e5489306fe46c0c7
parent091cd5fc55acc746c572109574cac55c72e27d6f
kernel - Fix two UFS+softupdates bugs

* The softdep sema_*() functions (the ones in ffs_softdep.c, not the sysv
  functions) were not MPSAFE for the case where the passed interlock is
  NULL.  Use a spinlock for that case.

* getdirtybuf()'s semantics were broken and could return success even
  after having released &lk with the bp still unlocked.

  Fixing this should fix most of the reported softdep panics.
sys/vfs/ufs/ffs_softdep.c