Module Name: src Committed By: riastradh Date: Sun Feb 23 08:39:28 UTC 2020
Modified Files: src/sys/ufs/lfs: lfs_bio.c Log Message: Prevent new dirops while we issue lfs_flush_dirops. lfs_flush_dirops assumes (by KASSERT((ip->i_state & IN_ADIROP) == 0)) that vnodes on the dchain will not become involved in active dirops even while holding no other locks (lfs_lock, v_interlock), so we must set lfs_writer here. All other callers already set lfs_writer. We set fs->lfs_writer++ without explicitly doing lfs_writer_enter because (a) we already waited for the dirops to drain, and (b) we hold lfs_lock and cannot drop it before setting lfs_writer. To generate a diff of this commit: cvs rdiff -u -r1.145 -r1.146 src/sys/ufs/lfs/lfs_bio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.