How does the threading model in FUSE work? For example if i have a
simple filesystem with the following files:
/
foo
foobar
bar
barfoo
In this notation foo is a dir that resides in / and that has a file
named foobar.
Let's say that the filesystem is mounted at /fuse. When I do a "stat
/fuse/foo/foobar" in this system the debug info tells me that FUSE does
the following:
#1: LOOKUP - on "/foo"
#2: LOOKUP - on "/foo/foobar"
This is all good, but.. What I want to ask is what will happen when two
different processes do something on the mountpoint simultaneously.
Consider another process that does a "stat /fuse/bar/barfoo" at the same
time. This will lead to the FUSE operations:
#3: LOOKUP - on "/bar"
#4: LOOKUP - on "/bar/barfoo"
My question then is: Can the execution of these two operations be mixed
in any way? In other words, is it possible to have an execution with an
ordering like for example 1,3,2,4 or is it guaranteed that the execution
will always be either 1,2,3,4 or 3,4,1,2?
Best regards,
Mads Kristensen
|