|
From: Satya P. GS <g.s...@gm...> - 2018-08-01 17:10:04
|
Can somebody please reply to this. Thanks, Satya. On Wed, Jul 18, 2018 at 1:42 PM, Satya Prakash GS <g.s...@gm...> wrote: > Hi, > > Ours is a distributed filesystem and we are using fuse to access our > filesystem locally. > Inode numbers in our filesystem get reused, however our filesystem has > a concept similar to generation number which gets bumped up on every > reuse. Our inode numbers are bigger than 8-bytes and we coulnd't > squeeze in the generation number into the ino that we serve fuse > kernel. > > Inode numbers created by one fuse node could potentially be deleted by > the other node. This leads to EBUSY errors in mkdir (mkdir does "do I > know this inode check. If kernel thinks it knows this inode then it > complains that the inode is busy"). One way to fix this issue is by > maintaining a replica of the kernel dentry cache in our userspace. > Every time I serve the inode I should first check if this inode exists > in the userspace cache and if it does, then do > fuse_lowlevel_notify_inval_entry on that dentry. However, things could > get a lot simpler if the generation number served in mkdir is used in > resolving conflicts in kernel. Is this already addressed. If so, > kindly tell me which release has this fix. We are currently in 2.7 and > we cherry-picked few fixes from 2.9. > > Thanks, > Satya. |