CVSROOT:        /cvs
Module name:    src
Changes by:     [email protected] 2020/03/09 10:49:13

Modified files:
        sys/ufs/ffs    : ffs_softdep.c 

Log message:
Avoid a tight CPU loop when no unlocked worklist items can be processed.

If process_worklist_item() is unable to process locked vnodes,
num_on_worklist will still be non-zero, preventing the loop in
softdep_process_worklist() from exiting.  This can result in a
kernel hang.

To fix this, process_worklist_item() now returns non-zero if it was
able to process a worklist item (regardless of whether it matched
the mountpoint) and takes a pointer to matchcnt as a function
argument.  We now break out of the loop in softdep_process_worklist()
if process_worklist_item() is unable to make progress.

OK beck@ bluhm@

Reply via email to