2
0
Эх сурвалжийг харах

fuse2: getattr: prefer fh lookup if possible

Thomas Waldmann 4 долоо хоног өмнө
parent
commit
71416d76f4
1 өөрчлөгдсөн 9 нэмэгдсэн , 3 устгасан
  1. 9 3
      src/borg/fuse2.py

+ 9 - 3
src/borg/fuse2.py

@@ -540,9 +540,15 @@ class borgfs(mfuse.Operations, FuseBackend):
 
     def getattr(self, path, fh=None):
         debug_log(f"getattr(path={path!r}, fh={fh})")
-        node = self._find_node(path)
-        if node is None:
-            raise mfuse.FuseOSError(errno.ENOENT)
+        if fh is not None:
+            # use file handle if available to avoid path lookup
+            node = self._get_node_from_handle(fh)
+            if node is None:
+                raise mfuse.FuseOSError(errno.EBADF)
+        else:
+            node = self._find_node(path)
+            if node is None:
+                raise mfuse.FuseOSError(errno.ENOENT)
         st = self._make_stat_dict(node)
         debug_log(f"getattr -> {st}")
         return st