Skip to content

Commit e78f817

Browse files
committed
fs: reflink: try to normalize permissions on any platform
1 parent 3a2fd37 commit e78f817

File tree

2 files changed

+4
-10
lines changed

2 files changed

+4
-10
lines changed

src/dvc_objects/fs/generic.py

+2-7
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
import errno
33
import logging
44
import os
5-
import sys
65
from contextlib import suppress
76
from functools import wraps
87
from typing import TYPE_CHECKING, Any, Callable, List, Optional, Union
@@ -61,12 +60,8 @@ def _link(
6160

6261
func = getattr(to_fs, link)
6362
func(from_path, to_path)
64-
if (
65-
link == "reflink"
66-
and sys.platform == "darwin"
67-
and isinstance(from_fs, LocalFileSystem)
68-
):
69-
# NOTE: reflink on macos also clones src permissions
63+
if link == "reflink" and isinstance(from_fs, LocalFileSystem):
64+
# NOTE: reflink may or may not clone src permissions
7065
os.chmod(to_path, 0o666 & ~umask)
7166

7267

src/dvc_objects/fs/utils.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -191,9 +191,8 @@ def copyfile(
191191

192192
try:
193193
system.reflink(src, dest)
194-
if sys.platform == "darwin":
195-
# NOTE: reflink on macos also clones src permissions
196-
os.chmod(dest, 0o666 & ~umask)
194+
# NOTE: reflink may or may not clone src permissions
195+
os.chmod(dest, 0o666 & ~umask)
197196
return
198197
except OSError:
199198
pass

0 commit comments

Comments
 (0)