Paulo Alcantara
2025-Jul-31 18:15 UTC
[Samba] SMB3 Unix Extensions - creating special files
Matthew Richardson <m.richardson at ed.ac.uk> writes:> Thanks for spotting this. I can confirm that I see different behaviour > with different kernels: > > 6.13.0 - mkfifo and ln-s work as expected. > 6.14.0 - mkfifo works, ln-s gives 'operation not supported'. > >=6.15.7 - both give 'operation not supported'. > > Which implies possibly more than one regression?Yes. It used to work on older kernels because the client used to create special files with NFS reparse points by default, which is required for SMB3.1.1 POSIX mounts. 6c06be908ca1 ("cifs: Check if server supports reparse points before using them") then added a check for FILE_SUPPORTS_REPARSE_POINTS, which breaks against samba because it isn't set. IOW, we should skip this check for SMB3.1.1 POSIX mounts.
> FILE_SUPPORTS_REPARSE_POINTS, which breaks against samba because itisn't set. IOW, we should skip this check for SMB3.1.1 POSIX mounts. We did add this patch to 6.16 in mainline https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/fs/smb/client?id=8767cb3fbd514c4cf85b4f516ca30388e846f540 And it should be backported to some stable kernels by now Thanks, Steve On Thu, Jul 31, 2025, 1:15?PM Paulo Alcantara <pc at manguebit.org> wrote:> Matthew Richardson <m.richardson at ed.ac.uk> writes: > > > Thanks for spotting this. I can confirm that I see different behaviour > > with different kernels: > > > > 6.13.0 - mkfifo and ln-s work as expected. > > 6.14.0 - mkfifo works, ln-s gives 'operation not supported'. > > >=6.15.7 - both give 'operation not supported'. > > > > Which implies possibly more than one regression? > > Yes. It used to work on older kernels because the client used to create > special files with NFS reparse points by default, which is required for > SMB3.1.1 POSIX mounts. 6c06be908ca1 ("cifs: Check if server supports > reparse points before using them") then added a check for > FILE_SUPPORTS_REPARSE_POINTS, which breaks against samba because it > isn't set. IOW, we should skip this check for SMB3.1.1 POSIX mounts. >