浏览代码

Merge pull request #5224 from ThomasWaldmann/read-special-part-files-mode

--read-special: .part files also should be regular files, fixes #5217
TW 5 年之前
父节点
当前提交
23f4a7d874
共有 1 个文件被更改,包括 5 次插入4 次删除
  1. 5 4
      src/borg/archive.py

+ 5 - 4
src/borg/archive.py

@@ -1249,6 +1249,11 @@ class FilesystemObjectProcessors:
                     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 is_special_file:
+                    # we process a special file like a regular file. reflect that in mode,
+                    # so it can be extracted / accessed in FUSE mount like a regular file.
+                    # this needs to be done early, so that part files also get the patched mode.
+                    item.mode = stat.S_IFREG | stat.S_IMODE(item.mode)
                 if not hardlinked or hardlink_master:
                     if not is_special_file:
                         path_hash = self.key.id_hash(safe_encode(os.path.join(self.cwd, path)))
@@ -1298,10 +1303,6 @@ class FilesystemObjectProcessors:
                     self.stats.nfiles += 1
                 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,
-                    # so it can be extracted / accessed in FUSE mount like a regular file:
-                    item.mode = stat.S_IFREG | stat.S_IMODE(item.mode)
                 return status