The first patch fixes an extreme slowdown when lots of concurrent threads are
trying to flush inodes - xfssyncd can "miss" work that is queued and so can
result in a flush waiting for 30s for the next timeout. Test 225 can take 15
minutes to run without this fix. Withthe fix it consistently takes about 50s.
The second patch prevents stale delayed allocation mappings from being left on
inodes when we discard a page in writeback due to an IO error or an ENOSPC
condition. The stale mappings can cause a BUG() to be triggered during
subsequent direct IO reads.
The last patch increases the size of the reserve block pool to reduce the
possibility of getting ENOSPC conditions during delayed allocation that
would trigger the page tossing in the first place. This requires some QA
tests to be updated - that will follow in a separate patch.