Christoph Hellwig <hch@xxxxxx> wrote: > Not related to this patch, but using iov_iter with dio is trivial, what > is the blocker therere? The usual: time. The change as a whole is not actually trivial since it will involve completely overhauling the fscache data API and how the filesystems use it - and then having cachefiles perform the DIO asynchronously as per Trond's requirements for using fscache with NFS. I also need to work out how I'm going to do data/hole detection. Can I set, say, O_NOREADHOLE and then expect the DIO to stop early with a short read? Or do I need to use SEEK_DATA/SEEK_HOLE in advance to define the occupied regions? Maybe a better way would be to take a leaf out of the book of OpenAFS and suchlike and keep a parallel file that tracks the occupancy of a cache object (eg. a bitmap with 1 bit per 64k block) - but that the synchronisation and performance issues. David