I tried to ask on FUSE's mailing list but I haven't received any response so far... I have a couple of questions. I'm going to implement a low-level FUSE file system and watch over fuse_chan
's descriptor with epoll.
I have to fake inodes for all objects in my file system right? Are there any rules about choosing inodes for objects in VFS (e.g. do I have to use only positive values or can I use values in some range)?
Can I make fuse_chan's descriptor nonblocking? If yes, please tell me whether I can assume that
fuse_chan_recv()
/fuse_chan_send()
will receive/send a whole request structure, or do I have to override them with functions handling partial send and receive?What about
buffer size
? I see that infuse_loop()
a new buffer is allocated for each call, so I assume that the buffer size is not fixed. However maybe there is some maximum possible buffer size? I can then allocate a larger buffer and reduce memory allocation operations.