Feature #10463
closeduse SEEK_DATA/SEEK_HOLE for FileStore fiemap() implementation
0%
Description
In an exchange on linux-fsdevel yesterday it became clear that even when
FIEMAP isn't buggy it's not a good interface to build a map of sparse
files. For example, XFS defrag or other future fs features may muck with
fiemap results. One wouldn't expect those things to change whether a file
extent is allocated or not allocated, but given what we've seen so far I
wouldn't bet on it.Instead, we should use lseek SEEK_DATA/SEEK_HOLE, which is a more natural
interface for what we need. This should simply be a matter of replacing
the fiemap() method implementation in FileStore.cc, I think.See this thread:
http://marc.info/?l=linux-fsdevel&m=142050204317588&w=2
The other half of this is we should confirm that xfstests.git has good
SEEK_HOLE/SEEK_DATA stress tests (that verify correct results on both
recently written, recently synced, and uncached files).