Re: [PATCH] fuse: Add support for fuse stacked I/O

From: Linus Torvalds
Date: Fri Jan 15 2016 - 16:53:39 EST


On Fri, Jan 15, 2016 at 1:46 PM, Andy Lutomirski <luto@xxxxxxxxxxxxxx> wrote:

> If mmap sets vm_file to the underlying thing, wouldn't CRIU and
> anything else that uses map_files get confused? Or did you have
> something else in mind?

Why would they care?

Also, I don't think you actually need to change vm_file - we have this
whole notion of "inode->i_data" vs "inode->i_mapping".

So I think you could set the "i_mapping" of the fuse inode to be the
i_mapping of the passed-through-to inode, and it should just work.

And no, I didn't look into this very deeply, and maybe there is some
annoying detail that would make that not work well. But that's part of
the whole point of the i_mapping indirection: so that you can share
the page cache when you have two separate anchor points. I think coda
uses it for the local caching, and block devices use it to not have
mapping aliases between different inodex that all are the same block
device.

Linus