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:31:51 +0000 (10:31 -0700)
commit7b7fca2992a0ab00710ccd9cc09a3b479c9cb613
treeb107e2b184b8c2e065768513b72d885036a5623d
parentf5be25042843bb344c8138ab7c2d39313719dce0
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