diff --git a/docs/faq.rst b/docs/faq.rst index e23f45a30..6726e15bc 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -97,6 +97,9 @@ Which file types, attributes, etc. are *not* preserved? Archive extraction has optional support to extract all-zero chunks as holes in a sparse file. * Some filesystem specific attributes, like btrfs NOCOW, see :ref:`platforms`. + * For hardlinked symlinks, the hardlinking can not be archived (and thus, + the hardlinking will not be done at extraction time). The symlinks will + be archived and extracted as non-hardlinked symlinks, see :issue:`2379`. Are there other known limitations? ---------------------------------- diff --git a/src/borg/archive.py b/src/borg/archive.py index e29919b79..577fa8e64 100644 --- a/src/borg/archive.py +++ b/src/borg/archive.py @@ -886,12 +886,11 @@ def process_dev(self, path, st, dev_type): def process_symlink(self, path, st): # note: using hardlinkable=False because we can not support hardlinked symlinks, # due to the dual-use of item.source, see issue #2343: + # hardlinked symlinks will be archived [and extracted] as non-hardlinked symlinks. with self.create_helper(path, st, 's', hardlinkable=False) as (item, status, hardlinked, hardlink_master): with backup_io('readlink'): source = os.readlink(path) item.source = source - if st.st_nlink > 1: - logger.warning('hardlinked symlinks will be archived as non-hardlinked symlinks!') item.update(self.stat_attrs(st, path)) return status