kernel - Fix two UFS+softupdates bugs
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 16 Aug 2012 01:14:27 +0000 (18:14 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 16 Aug 2012 01:14:27 +0000 (18:14 -0700)
commit8224c9ea7d94389a63b07be4401f0b05912f8f4a
treefe5b20bc0cb91ca3b12314c4619f44f7273e2761
parent0730ed66e3324415127af9bc0fe9dafa399f4e91
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