c999b43527
The code accesses bp->b_dep without owning the ufs mount softdep lock, which makes it possible for the derefenced workitem to be freed in parallel. In particular, the deallocate_dependencies(), softdep_disk_io_initiation() and softdep_disk_write_complete() are affected. Move the code to safely calculate ump from the buffer with dependencies into the helper softdep_bp_to_mp() and use it for all found cases. Tested by: pho (as part of the bigger patch) Reviewed by: mckusick (as part of the bigger patch) Sponsored by: The FreeBSD Foundation MFC after: 1 week |
||
---|---|---|
.. | ||
ffs_alloc.c | ||
ffs_balloc.c | ||
ffs_extern.h | ||
ffs_inode.c | ||
ffs_rawread.c | ||
ffs_snapshot.c | ||
ffs_softdep.c | ||
ffs_subr.c | ||
ffs_suspend.c | ||
ffs_tables.c | ||
ffs_vfsops.c | ||
ffs_vnops.c | ||
fs.h | ||
softdep.h |