On 26/10/16 05:16PM, Miklos Szeredi wrote: > This is the FUSIfication of the famfs-fuse patchset. > > - extent maps are assigned to a backing ID > > - 64 bit backing ID's managed by server > > - maps can be linear or cyclic (striped) > > - API supports nesting, but not implemented yet (i.e. multiple striped > extents per inode, a-la famfs) > > libfuse/famfs trees for testing: > > https://github.com/szmi/libfuse.git#extent-map-v3 > https://github.com/jagalactic/famfs.git#master > > This patchset: > > git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git#for-next > > Passes famfs smoke test on emulated dax device. > > Comments are welcome. > > Thanks, > Miklos > > --- > Changes since v4: > > - extent array (John) > - error out on truncate/hole punch on a dax backed file (Sashiko) > - small fix (Sashiko) > > Changes since v3: > > - redid the first patch (prompted by sashiko: passing dev_t is racy) > - more fixes (John, Amir Sashiko) > > Changes since v2: > > - add a trivial prep patch modifying drivers/dax/super.c > - reserve zero value for 64 bit backing ID (Amir) > - add Originally-by: tag to acknowledge John's work > - more fixes and cleanups (Amir, Sashiko) > > Changes since v1: > > - moved 3 prep patches to fuse.git#for-next > - introduce FUSE_PASSTHROUGH_V2 (Amir) > - lots of small fixes and cleanups (Amir, Sashiko) > > --- > John Groves (2): > dax: add fsdev_dax_from_file() > fuse: resolve extent maps in O(1) when possible > > Miklos Szeredi (8): > dax: use READ_ONCE() in dax_holder() > fuse: add helpers for EIO return value with kernel message > fuse: support 64 bit, server allocated backing ID > fuse: support opening 64 bit backing ID > fuse: add support for opening dax device as backing > fuse: add extent map data structure > fuse: add extent map I/O support > fuse: add support for striped backing > > drivers/dax/fsdev.c | 23 +++ > drivers/dax/super.c | 5 +- > fs/file.c | 1 + > fs/fuse/Makefile | 2 +- > fs/fuse/backing.c | 302 ++++++++++++++++++++++++------ > fs/fuse/dev.c | 54 ++++-- > fs/fuse/dev.h | 3 + > fs/fuse/dir.c | 6 +- > fs/fuse/ext_map.c | 376 ++++++++++++++++++++++++++++++++++++++ > fs/fuse/file.c | 33 +++- > fs/fuse/fuse_i.h | 79 +++++++- > fs/fuse/inode.c | 25 ++- > fs/fuse/iomode.c | 116 ++++++------ > fs/fuse/notify.c | 75 ++++++++ > fs/fuse/passthrough.c | 66 +++---- > include/linux/dax.h | 3 +- > include/uapi/linux/fuse.h | 53 +++++- > 17 files changed, 1044 insertions(+), 178 deletions(-) > create mode 100644 fs/fuse/ext_map.c > > -- > 2.54.0 >
For the series: Reviewed-by: John Groves <[email protected]> Tested-by: John Groves <[email protected]>
