kernel -- FFS: Take softdep lock in softdep_disk_io_initiation.
authorVenkatesh Srinivas <me@endeavour.zapto.org>
Mon, 2 Apr 2012 17:02:25 +0000 (10:02 -0700)
committerVenkatesh Srinivas <me@endeavour.zapto.org>
Mon, 2 Apr 2012 17:02:25 +0000 (10:02 -0700)
commit24624a1562837ae797e4c1b05689f6f5b56006d9
tree5089a67cee66fedae1899c7634b801d02e5320db
parent20aca2bf48adcadc506458296cead8499c1d147a
kernel -- FFS: Take softdep lock in softdep_disk_io_initiation.

softdep_disk_io_initiation was using the mplock rather than the softdep
lock to protect the softdep work queue and items on it. Take the softdep
lock and allow it to be taken recursively, so that io_start bioops can
call into other parts of softdep. Prevents softdep completion callback
from racing softdep_disk_io_initiation, remaining panics of 2291.

Eventually the MPLOCK in the bio_ops callback can go away, but that will
require more testing.

Closes-bug: 2291
sys/vfs/ufs/ffs_softdep.c