Hi folks, This is a followup to the original patchset here: https://lore.kernel.org/linux-xfs/20190905072856.GE1119@xxxxxxxxxxxxxxxxxxx/T/#m8ae6bdccbf4248b5d219ad40ab5caa92f9e0a979 It is aimed at solving the hangs occurring in generic/530 and cleaning up the code around the iclog completion. This version is largely just changes for review comments, though there is a new patch (#3) to address what is probably the underlying cause of all the issues. Chandan has tested the new unbound workqueue change and it solved the hang on his test machine, passes all the log group tests on my test machines. Cheers, Dave. Version 3: - add patch to yeild the CPU in AGI unlinked list processing and to allow the CIL push work to be done on any CPU so it doesn't get stuck on a CPU that isn't being yeilded. - Added comment to explain the AIL push added to an unsuccessful wakeup in xlog_grant_head_wake() - removed "did callbacks" parameter from xlog_state_callback_check_state and cleaned up comments - fixed detection of the icloglock being dropped during the iclog state scan. - fixed unintended logic change with iclogs in IOERROR state when factoring out state processing - other small whitespace and cleanup bits.