Merge pull request #4497 from ThomasWaldmann/simple-stat-only-once

create: only run stat_simple_attrs() once
This commit is contained in:
TW 2019-04-16 20:16:28 +02:00 committed by GitHub
commit df5641ad27
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1195,6 +1195,7 @@ def process_file(self, *, path, parent_fd, name, st, cache, flags=flags_normal):
with OsOpen(path=path, parent_fd=parent_fd, name=name, flags=flags, noatime=True) as fd:
with backup_io('fstat'):
st = stat_update_check(st, os.fstat(fd))
item.update(self.metadata_collector.stat_simple_attrs(st))
is_special_file = is_special(st.st_mode)
if not hardlinked or hardlink_master:
if not is_special_file:
@ -1219,7 +1220,6 @@ def process_file(self, *, path, parent_fd, name, st, cache, flags=flags_normal):
else:
status = 'M' if known else 'A' # regular file, modified or added
item.hardlink_master = hardlinked
item.update(self.metadata_collector.stat_simple_attrs(st))
# Only chunkify the file if needed
if chunks is not None:
item.chunks = chunks
@ -1244,8 +1244,7 @@ def process_file(self, *, path, parent_fd, name, st, cache, flags=flags_normal):
# changed while we backed it up.
cache.memorize_file(path_hash, st, [c.id for c in item.chunks])
self.stats.nfiles += 1
md = self.metadata_collector.stat_attrs(st, path, fd=fd)
item.update(md)
item.update(self.metadata_collector.stat_ext_attrs(st, path, fd=fd))
item.get_size(memorize=True)
if is_special_file:
# we processed a special file like a regular file. reflect that in mode,