[PATCH 0/7] xfs: log race fixes and cleanups

Dave Chinner
2019-09-04T04:24:57Z

HI folks,

This series of patches contain fixes for the generic/530 hangs that
Chandan and Jan reported recently. The first patch in the series is
the main fix for this, though in theory the last patch in the series
is necessary to totally close the problem off.

The second patch is an outstanding fix for a log flush wakeup race
in the xlog_state_do_callback() code from Rik van Riel. Given that
the next 5 patches in the series clean up iand address the tail
pushing race in xlog_state_do_callback(), it makes sense to get this
into the kernel at the same time.

Patches 3-6 factor several independent chunks out of
xlog_state_do_callback, greatly simplifying that function and
breaking the iclog IO completion processing down into discrete
chunks of separate functionality. This makes the code much easier
to read, follow and understand.

An the last patch kicks the AIL if necessary when the log tail is
moved to avod the situation where the AIL pushing has stalled
because the previous last_sync_lsn is further into the log than the
push target reaches.

Comments welcome.

-Dave.