822a8f2c0f
- move calls to softdep_setup_pagecache() (which can sleep to allocate memory) outside the softdep lock. - replace the softdep_flush_indir() hack (which tries to find another vnode to fsync when we are holding lots of buffer-cache buffers locked for long periods of time) with softdep_trackbufs() (which just kicks the syncer and sleeps under the same circumstances). the former method had a lock-ordering problem which would occasionally deadlock. - relax the assertion in softdep_sync_metadata() which says that we should never see D_ALLOCDIRECT deps for VREG vnodes. it's ok to see those attached to indirect blocks. also, there's no need to splbio() while allocating the buffer headers to which pagecache dependencies are attached, so remove that. fixes all the problems in PR 19288. |
||
---|---|---|
.. | ||
Makefile | ||
ffs_alloc.c | ||
ffs_appleufs.c | ||
ffs_balloc.c | ||
ffs_bswap.c | ||
ffs_extern.h | ||
ffs_inode.c | ||
ffs_softdep.c | ||
ffs_softdep.stub.c | ||
ffs_subr.c | ||
ffs_tables.c | ||
ffs_vfsops.c | ||
ffs_vnops.c | ||
fs.h | ||
softdep.h |