This serious revamps a lot of the way we do the block mapping for
writeback. It gets rid of the xfs_iomap interface and now calls
xfs_bmapi directly from __xfs_get_blocks and xfs_vm_writepage,
and simplifies the code in writepage a lot.
It removes about 200 lines of code and a superflous radix tree
lookup for already allocated blocks.
It also shows a pretty clear path to how we can get rid of buffer
heads. The new writepage code shows that we rely very little on
buffers for writeback - I think we can relatively easy switch it
from looping over bufferheads to loop over the xfs_bmapi results
and it will still work. We'll need some more work on the get_blocks
and truncate side, but I think we can pretty easily remove the
buffer heads in XFS without any replacement and just rely on the
extent cache in the inode underneath xfs_bmapi.
|