From 71416d76f486176bcdc9622f0ce50654d0d50e9c Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Tue, 25 Nov 2025 20:27:49 +0100 Subject: [PATCH] fuse2: getattr: prefer fh lookup if possible --- src/borg/fuse2.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/borg/fuse2.py b/src/borg/fuse2.py index e7ee266ac..749782fbc 100644 --- a/src/borg/fuse2.py +++ b/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