Hi all, This set of patches try to shrink the window during which a crash during writeback can expose stale disk contents. The first patch causes delalloc reservations to be converted to unwritten extents for any writeback that's going on within EOF. The second patch fixes a minor error encountered during writeback; and the third patch fixes speculative preallocation to work when the EOF block could be unwritten. v3 puts the extent tree walk into the dynamic prealloc sizing function. v4 fixes a bug with walking the extent map backwards. If you're going to start using this mess, you probably ought to just pull from my git trees, which are linked below. This is an extraordinary way to destroy everything. Enjoy! Comments and questions are, as always, welcome. --D kernel git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=stale-exposure xfsprogs git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=stale-exposure --- fs/xfs/libxfs/xfs_bmap.c | 29 +++++++----- fs/xfs/xfs_iomap.c | 107 +++++++++++++++++++++++----------------------- 2 files changed, 71 insertions(+), 65 deletions(-)