I noticed our continuous testing for btrfs started timing out recently, and dug down to discover that generic/224 was taking upwards of an hour to run. This test should take seconds to run, so this is a problem.
Fix this by reworking how we do delalloc metadata reservations, as described in patch 2/2. I also noticed we don't quite do the right thing when we are mostly O_DIRECT, and addressed this in patch 1/2. I've run these through xfstests and everything is back to normal. Thanks, Josef