mirror of
https://github.com/borgbackup/borg.git
synced 2025-03-09 21:57:24 +00:00
Merge pull request #733 from ipha/master
Unpack file stats before passing to fuse
This commit is contained in:
commit
95f928699b
1 changed files with 19 additions and 7 deletions
26
borg/fuse.py
26
borg/fuse.py
|
@ -7,7 +7,7 @@ import stat
|
|||
import tempfile
|
||||
import time
|
||||
from .archive import Archive
|
||||
from .helpers import daemonize
|
||||
from .helpers import daemonize, bigint_to_int
|
||||
from distutils.version import LooseVersion
|
||||
import msgpack
|
||||
|
||||
|
@ -164,13 +164,25 @@ class FuseOperations(llfuse.Operations):
|
|||
entry.st_blocks = dsize / 512
|
||||
# note: older archives only have mtime (not atime nor ctime)
|
||||
if have_fuse_xtime_ns:
|
||||
entry.st_atime_ns = item.get(b'atime') or item[b'mtime']
|
||||
entry.st_mtime_ns = item[b'mtime']
|
||||
entry.st_ctime_ns = item.get(b'ctime') or item[b'mtime']
|
||||
entry.st_mtime_ns = bigint_to_int(item[b'mtime'])
|
||||
if b'atime' in item:
|
||||
entry.st_atime_ns = bigint_to_int(item[b'atime'])
|
||||
else:
|
||||
entry.st_atime_ns = bigint_to_int(item[b'mtime'])
|
||||
if b'ctime' in item:
|
||||
entry.st_ctime_ns = bigint_to_int(item[b'ctime'])
|
||||
else:
|
||||
entry.st_ctime_ns = bigint_to_int(item[b'mtime'])
|
||||
else:
|
||||
entry.st_atime = (item.get(b'atime') or item[b'mtime']) / 1e9
|
||||
entry.st_mtime = item[b'mtime'] / 1e9
|
||||
entry.st_ctime = (item.get(b'ctime') or item[b'mtime']) / 1e9
|
||||
entry.st_mtime_ns = bigint_to_int(item[b'mtime']) / 1e9
|
||||
if b'atime' in item:
|
||||
entry.st_atime_ns = bigint_to_int(item[b'atime']) / 1e9
|
||||
else:
|
||||
entry.st_atime_ns = bigint_to_int(item[b'mtime']) / 1e9
|
||||
if b'ctime' in item:
|
||||
entry.st_ctime_ns = bigint_to_int(item[b'ctime']) / 1e9
|
||||
else:
|
||||
entry.st_ctime_ns = bigint_to_int(item[b'mtime']) / 1e9
|
||||
return entry
|
||||
|
||||
def listxattr(self, inode, ctx=None):
|
||||
|
|
Loading…
Add table
Reference in a new issue