From: Tomasz Jankowski <tomcioj@gm...> - 2011-01-23 17:57:30
I'm preparing to implement a network file system using FUSE lowlevel API.
It's mostly for education purpose, because I'm studying computer science. I
decided to use asynchronous mode, because of delays in network I/O. My
program is going to be a multithreaded daemon running on Linux, using epoll
to handle all sockets and descriptors.
1. First thing, I don't want to use main loop provided with FUSE, so I have
to initialize FUSE on my own. I have to execute function below in exact
channel = fuse_mount ()
session = fuse_lowlevel_new ()
Now pass channel's descriptor to epoll and wait until it's ready for
reading, then call fuse_session_process() on channel.
2. Is it possible, that fuse_chan_recv()/fuse_chan_send() wil block? I don't
want to perform blocking operation because I handle various descriptors with
one epoll instance.
From: Goswin von Brederlow <goswin-v-b@we...> - 2011-01-26 13:04:04
Tomasz Jankowski <tomcioj@...> writes:
> 3. What about inodes, I have to fake them inside my virtual file system,
> right? Are there any restrictions about assigning inodes? They have to be
> positive, grater then 1024 or something?
Iirc any inode != 0 is valid as long as it is unique. Note that the root
inode has always FUSE_ROOT_ID (1).
Get latest updates about Open Source Projects, Conferences and News.