David Howells <dhowells@xxxxxxxxxx> wrote: > > I don't know whether you know, but I'm working on netfslib-ising ceph with an > eye to moving all the VFS/VM normal I/O interfaces to netfslib (->read_iter, > ->write_iter, ->readahead, ->read_folio, ->page_mkwrite, ->writepages), though > with wrapping/methods by which each network filesystem can add its own > distinctive flavour. > > Also, that would include doing things like content encryption, since that is > generally useful in filesystems and I have plans to support it in both AFS and > CIFS as well. I should also mention that netfslib brings multipage folio support with it too. All the filesystem has to do is to flip the bit: mapping_set_large_folios(inode->i_mapping); On reading, netfs will tile subrequests drawn from both the server and the local cache across a sequence of multipage folios. On writing, it will write the data in parallel to both the server and the local cache, tiling subrequests for both separately across the folios to be written. Subrequests don't have to match folios in size or alignment and nor, when writing, do subrequests going to the server have to match subrequests going to the local cache. Whilst on writing it only permits two parallel streams - one to the server and one to the cache - this is just an array with a hard-coded size at the moment and could made expandable later to allow simultaneous writing to multiple servers with different I/O characteristics. David