Merge branch '11095-cwl-control-reuse' closes #11095
[arvados.git] / services / fuse / arvados_fuse / fresh.py
index ec2d47a269791786ad38b7cc9b1e0424869b9042..e7e91db4279a895cffa23641ef97becc8ca9ffc8 100644 (file)
@@ -64,14 +64,19 @@ class FreshBase(object):
         self.use_count = 0
         self.ref_count = 0
         self.dead = False
-        self.cache_priority = None
         self.cache_size = 0
         self.cache_uuid = None
+        self.allow_attr_cache = True
+        self.allow_dirent_cache = True
 
-    # Mark the value as stale
     def invalidate(self):
+        """Indicate that object contents should be refreshed from source."""
         self._stale = True
 
+    def kernel_invalidate(self):
+        """Indicate that an invalidation for this object should be sent to the kernel."""
+        pass
+
     # Test if the entries dict is stale.
     def stale(self):
         if self._stale:
@@ -90,7 +95,7 @@ class FreshBase(object):
     def persisted(self):
         return False
 
-    def clear(self, force=False):
+    def clear(self):
         pass
 
     def in_use(self):
@@ -110,6 +115,18 @@ class FreshBase(object):
         self.ref_count -= n
         return self.ref_count
 
+    def has_ref(self, only_children):
+        """Determine if there are any kernel references to this
+        object or its children.
+
+        If only_children is True, ignore refcount of self and only consider
+        children.
+        """
+        if only_children:
+            return False
+        else:
+            return self.ref_count > 0
+
     def objsize(self):
         return 0