There are lots of similar questions out there, but none seems to address my problem: every time, the culprit is a legitimate permission issue, or an incompatible filesystem, none of which makes any sense here.
I'm transferring a file locally, on an ext4 filesystem, using rsync. A minimal example is:
cd /tmp
touch blah
mkdir test
rsync -rltDvp blah test
which returns the error:
rsync: [receiver] failed to set permissions on "/tmp/test/.blah.Gyvvbw": Function not implemented (38)
and the files have different permissions:
-rw-r--r-- 1 ted ted 0 Sep 29 15:49 blah
-rw------- 1 ted ted 0 Sep 29 15:49 test/blah
I'm running rsync as user ted and the filesystem is ext4, so it should support permissions just fine. Here is the corresponding line from df -Th:
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/c--3px--vg-root ext4 936G 395G 494G 45% /
I'm running rsync 3.2.3 protocol version 31 on Debian Sid, kernel 5.10.0-6-amd64.