13111: Merge branch 'master' into 12308-go-fuse
[arvados.git] / services / fuse / arvados_fuse / __init__.py
index de0338ea79f9c07dab0eb307fa24596b57483757..788d475e33c0d094d719503e6b9fc4dba386e1ec 100644 (file)
@@ -159,10 +159,11 @@ class InodeCache(object):
             if obj.in_use():
                 _logger.debug("InodeCache cannot clear inode %i, in use", obj.inode)
                 return
-            obj.kernel_invalidate()
             if obj.has_ref(True):
-                _logger.debug("InodeCache sent kernel invalidate inode %i", obj.inode)
+                _logger.debug("InodeCache cannot clear inode %i, still referenced", obj.inode)
                 return
+            obj.kernel_invalidate()
+            _logger.debug("InodeCache sent kernel invalidate inode %i", obj.inode)
             obj.clear()
 
         # The llfuse lock is released in del_entry(), which is called by
@@ -437,6 +438,7 @@ class Operations(llfuse.Operations):
         entry = llfuse.EntryAttributes()
         entry.st_ino = inode
         entry.generation = 0
+        entry.entry_timeout = 0
         entry.attr_timeout = e.time_to_next_poll() if e.allow_attr_cache else 0
 
         entry.st_mode = stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH