diff --git a/src/borg/fuse.py b/src/borg/fuse.py index 78596bcd8..116c7b3e9 100644 --- a/src/borg/fuse.py +++ b/src/borg/fuse.py @@ -8,7 +8,6 @@ import tempfile import time from collections import defaultdict from signal import SIGINT -from distutils.version import LooseVersion import llfuse @@ -25,17 +24,10 @@ from .item import Item from .lrucache import LRUCache from .remote import RemoteRepository -# Does this version of llfuse support ns precision? -have_fuse_xtime_ns = hasattr(llfuse.EntryAttributes, 'st_mtime_ns') -fuse_version = LooseVersion(getattr(llfuse, '__version__', '0.1')) -if fuse_version >= '0.42': - def fuse_main(): - return llfuse.main(workers=1) -else: - def fuse_main(): - llfuse.main(single=True) - return None +def fuse_main(): + return llfuse.main(workers=1) + # size of some LRUCaches (1 element per simultaneously open file) # note: _inode_cache might have rather large elements - Item.chunks can be large! @@ -362,8 +354,7 @@ class FuseBackend(object): file_id = blake2b_128(path) current_version, previous_id = self.versions_index.get(file_id, (0, None)) - chunk_ids = [chunk_id for chunk_id, _, _ in item.chunks] - contents_id = blake2b_128(b''.join(chunk_ids)) + contents_id = blake2b_128(b''.join(chunk_id for chunk_id, _, _ in item.chunks)) if contents_id != previous_id: current_version += 1 @@ -567,17 +558,10 @@ class FuseOperations(llfuse.Operations, FuseBackend): entry.st_blksize = 512 entry.st_blocks = (entry.st_size + entry.st_blksize - 1) // entry.st_blksize # note: older archives only have mtime (not atime nor ctime) - mtime_ns = item.mtime - if have_fuse_xtime_ns: - entry.st_mtime_ns = mtime_ns - entry.st_atime_ns = item.get('atime', mtime_ns) - entry.st_ctime_ns = item.get('ctime', mtime_ns) - entry.st_birthtime_ns = item.get('birthtime', mtime_ns) - else: - entry.st_mtime = mtime_ns / 1e9 - entry.st_atime = item.get('atime', mtime_ns) / 1e9 - entry.st_ctime = item.get('ctime', mtime_ns) / 1e9 - entry.st_birthtime = item.get('birthtime', mtime_ns) / 1e9 + entry.st_mtime_ns = mtime_ns = item.mtime + entry.st_atime_ns = item.get('atime', mtime_ns) + entry.st_ctime_ns = item.get('ctime', mtime_ns) + entry.st_birthtime_ns = item.get('birthtime', mtime_ns) return entry def listxattr(self, inode, ctx=None):