Your directory looks empty, but the ls output indicates that there is a file in there since the link count for the directory is 3 rather than 2 (an empty directory on an APFS filesystem should have a link count of 2).
This implies that your filesystem has managed to get itself into an inconsistent state and that you should probably run fsck on it. On macOS,...
The directory entries . and .. are an artefact from the early 1970s, when UNIX did run on tiny machines and code needed to be tiny as well.
So the people created real hardlinks to directories named . and ... This bad idea causes the hard link count of an empty directory to be 2.
Today, this is nonsense and the POSIX definition since 1988 is that these ...
My first guess would be that you have files that have been deleted, but are kept open by a running process. Use sudo lsof | grep Contents - this should give you all the PIDs that have files open with names containing the word 'Contents'. Here's the first couple of lines of the output to show you the headers:
$ sudo lsof | head
COMMAND PID TID ...
There are a couple of options to skip searching within the file being created.
Create the file in a directory that is not within the tree being searched. Example: grep WindowsIdentity -r > ../windowsid.txt
Use the --exclude option. Example: grep WindowsIdentity -r --exclude=windowsid.txt > windowsid.txt
I was working on something similar the other night. My setup is a little different in that I do not use a home directory, each LVM is mounted at its own root level directory but a few things that may help:
In the [Global] section, i enforce a minimum SMB level using:
min protocol = SMB2
If you are running SMB 4 you could also set SMB3 as a ...
Have you tried telling SELinux on the server that the directory may be accessed by Samba?
It might be as simple as telling SELinux that sharing of home directories is allowed:
setsebool -P samba_enable_home_dirs 1