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.

  1. 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)?

  2. 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?

  3. what buffer size? see in fuse_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

Popular posts from this blog

java - SNMP4J General Variable Binding Error -

windows - Python Service Installation - "Could not find PythonClass entry" -

Determine if a XmlNode is empty or null in C#? -