On Mon, Aug 25, 2014 at 01:37:30PM -0400, Brian Foster wrote: > xfs_collapse_file_space() currently writes back the entire file > undergoing collapse range to settle things down for the extent shift > algorithm. While this prevents changes to the extent list during the > collapse operation, the writeback itself is not enough to prevent > unnecessary collapse failures. > > The current shift algorithm uses the extent index to iterate the in-core > extent list. If a post-eof delalloc extent persists after the writeback > (e.g., a prior zero range op where the end of the range aligns with eof > can separate the post-eof blocks such that they are not written back and > converted), xfs_bmap_shift_extents() becomes confused over the encoded > br_startblock value and fails the collapse. > > As with the full writeback, this is a temporary fix until the algorithm > is improved to cope with a volatile extent list and avoid attempts to > shift post-eof extents. > > Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx> > --- > > Hi all, > > This addresses the other fsx failure I've observed related to collapse > range. It should also be addressed by reworking the algorithm as > discussed in Dave's full file writeback patch. This patch applies on top > of that and I think this is more suitable for a near-term -rc drop. Added to my set of patches for testing. Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs