Replies: 2 comments 8 replies
-
nlookup maintains the number of times kernel looked up the inode. It can either happen through LOOKUP fop or through READDIRP of the inode's parent directory. When fuse-kernel thinks it doesn't need the inode anymore, it will call either FUSE_FORGET/FUSE_BATCH_FORGET on the inodes.
You can check FUSE_FORGET/FUSE_BATCH_FORGET fuse_handler_t operations defined in fuse-bridge.c, these are part of interface between kernel fuse and glusterfs.
They will be put in LRU list of the inode table. These inodes will be evicted from the table when
|
Beta Was this translation helpful? Give feedback.
-
This is not so straight forward in fuse layer. 'Invalidation' of inode in fuse (or client) is done to reduce the memory pressure. Ie, in this scenario, we want to forget the valid inodes, just that they are not accessed for some time now. The inodes which are getting invalidated are 'valid' w.r.to kernel. Hence, we first need to kernel from inside the process to send a forget. We can't delete/purge the inode till we get 'forget()' in fuse, as it may result in crash. |
Beta Was this translation helpful? Give feedback.
-
hello, when I saw dev-session, I had some questions.
nlookup
ininode_t
. I knowlookup
operation,but I don't understand this.if the number of inodes in LRU is huge and kernel doesn't call forgets quick enough ...
what is
forget call
? Is it a system call ?when refcount of inode is 0 but the nlookup count is non-zero
, what happen ? I have understood this for a long time, but I don't quite understand it.hope for some answers , thanks
Beta Was this translation helpful? Give feedback.
All reactions