Changeset View
Changeset View
Standalone View
Standalone View
swh/fuse/fuse.py
Show First 20 Lines • Show All 281 Lines • ▼ Show 20 Lines | ) -> pyfuse3.EntryAttributes: | ||||
"lookup(parent_name=%s, parent_inode=%d, name=%s)", | "lookup(parent_name=%s, parent_inode=%d, name=%s)", | ||||
parent_entry.name, | parent_entry.name, | ||||
parent_inode, | parent_inode, | ||||
name, | name, | ||||
) | ) | ||||
assert isinstance(parent_entry, FuseDirEntry) | assert isinstance(parent_entry, FuseDirEntry) | ||||
try: | try: | ||||
if parent_entry.validate_entry(name): | |||||
lookup_entry = await parent_entry.lookup(name) | lookup_entry = await parent_entry.lookup(name) | ||||
if lookup_entry: | if lookup_entry: | ||||
return await self.get_attrs(lookup_entry) | return await self.get_attrs(lookup_entry) | ||||
except Exception as err: | except Exception as err: | ||||
self.logger.exception("Cannot lookup: %s", err) | self.logger.exception("Cannot lookup: %s", err) | ||||
raise pyfuse3.FUSEError(errno.ENOENT) | raise pyfuse3.FUSEError(errno.ENOENT) | ||||
async def readlink(self, inode: int, _ctx: pyfuse3.RequestContext) -> bytes: | async def readlink(self, inode: int, _ctx: pyfuse3.RequestContext) -> bytes: | ||||
entry = self.inode2entry(inode) | entry = self.inode2entry(inode) | ||||
self.logger.debug("readlink(name=%s, inode=%d)", entry.name, inode) | self.logger.debug("readlink(name=%s, inode=%d)", entry.name, inode) | ||||
Show All 31 Lines |