Implementing asynchronous file system with FUSE on Linux -
i tried ask on fuse's mailing list haven't received response far... have couple of questions. i'm going implement low-level fuse file system , watch on fuse_chan
's descriptor epoll.
i have fake inodes objects in file system right? there rules choosing inodes objects in vfs (e.g. have use positive values or can use values in range)?
can make fuse_chan's descriptor nonblocking? if yes, please tell me whether can assume
fuse_chan_recv()
/fuse_chan_send()
receive/send whole request structure, or have override them functions handling partial send , receive?what
buffer size
? see infuse_loop()
new buffer allocated each call, assume buffer size not fixed. maybe there maximum possible buffer size? can allocate larger buffer , reduce memory allocation operations.
(1) inodes defined unsigned integers, in theory, use values. however, since there programs not careful, i'd play safe , use non-zero, positive integers int_max.
(2) fuse uses special kernel device. while fuse_chan_recv() not support partial reads, may not required, kernel should not return partial packets anyway.
(3) filenames in linux max 4096 chars. puts limit on buffer size:
$ grep path_max /usr/include/linux/limits.h #define path_max 4096 /* # chars in path name including nul */
Comments
Post a Comment