[prev in list] [next in list] [prev in thread] [next in thread] 

List:       fuse-devel
Subject:    [fuse-devel] High-level API and recursive fs loops
From:       Hans Beckerus <hans.beckerus () gmail ! com>
Date:       2016-03-31 22:32:25
Message-ID: 56FDA579.1080005 () gmail ! com
[Download RAW message or body]

Hello. I have an issue regarding a FUSE mount that is causing a loop 
with a hanging fs as a result.

Consider the following directory structure:
    ./mount_point
   ./source_dir

Now if I mount the FUSE fs from '.' to 'mount_point' there will be a 
recursion/loop of sorts.
If I do this using eg. a bind mount it works just fine because what then 
happens if I do:
   ls mount_point/mount_point
is that the bind mount returns me the "unmounted" root folder, which 
displays as empty.
My guess is that it is because it works on inodes directly and not paths?

But my high-level FUSE fs get stuck if I attempt the same operation. It 
gets stuck when
trying to call functions like stat(), opendir() etc. if the path 
provided is inside my mount point.
I can operate on 'source_dir' but never on 'mount_point'.

What I tried at first was to detect the loop and completely hide the 
mount point from the
actual output when listing/readdir the mount point root, but that only 
took me so far.
I could also detect the loop and fake a similar thing to what bind mount 
does, that is, showing
an empty folder. But I can never allow creation of files there since 
that would also result
in a complete dead-lock.

Now I am leaning towards actually prohibiting this type of mounts 
completely.
Is that really the only way forward here or have I missed something 
really obvious that would
make this work using the high-level API?

Thanks.
Hans



------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785471&iu=/4140
-- 
fuse-devel mailing list
To unsubscribe or subscribe, visit https://lists.sourceforge.net/lists/listinfo/fuse-devel
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic