...adding linux-cifs and Steve to the loop.... Looks to be a client issue: the client is checking for existence of the targets, the server returns ENOENT and then that's it. There no attempt to create either a symlink nor the fifo as reparse points. @Steve: any idea of what could be going wrong? Iirc this is supposed to be working in the client. -slow On 7/30/25 2:31 PM, Matthew Richardson wrote:> Hi, > > I've created a few network traces which will hopefully help. Each one > contains the initial mount command, followed by a single command. > They're hosted here: > > https://filebin.net/zvdx07i2m3lta129 > > Working: > > samba_stat_symlink.pcap = stat /mnt/sym_a_local > > Not working: > > samba_ln_s.pcap = ln -s /mnt/a.txt /mnt/a.symlink > > samba_mkfifo.pcap = mkfifo /mnt/fifo_new > > Hopefully that will give some idea about what's happening? but let me > know if you need any other traces or debug info. > > Thanks, > > Matthew > > > On 29/07/2025 18:22, Ralph Boehme wrote: >> Hi Matthew, >> >> as a starting point: can you send us a network trace of this? >> >> Iirc the mailing list server is not particularily fond of >> attachements, so either put it somewhere to grab it or file a Samba >> bug and attach it there. >> >> Cheers! >> -slow >> >-------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_signature.asc Type: application/pgp-signature Size: 840 bytes Desc: OpenPGP digital signature URL: <http://lists.samba.org/pipermail/samba/attachments/20250731/fdd1264f/OpenPGP_signature.sig>
I will check on this - but looks like the client was running 6.15, so want to check if there were any fixes in current mainline, 6.16 kernel, which could relate to this. On Thu, Jul 31, 2025 at 11:12?AM Ralph Boehme <slow at samba.org> wrote:> > ...adding linux-cifs and Steve to the loop.... > > Looks to be a client issue: the client is checking for existence of the > targets, the server returns ENOENT and then that's it. There no attempt > to create either a symlink nor the fifo as reparse points. > > @Steve: any idea of what could be going wrong? Iirc this is supposed to > be working in the client. > > -slow > > On 7/30/25 2:31 PM, Matthew Richardson wrote: > > Hi, > > > > I've created a few network traces which will hopefully help. Each one > > contains the initial mount command, followed by a single command. > > They're hosted here: > > > > https://filebin.net/zvdx07i2m3lta129 > > > > Working: > > > > samba_stat_symlink.pcap = stat /mnt/sym_a_local > > > > Not working: > > > > samba_ln_s.pcap = ln -s /mnt/a.txt /mnt/a.symlink > > > > samba_mkfifo.pcap = mkfifo /mnt/fifo_new > > > > Hopefully that will give some idea about what's happening but let me > > know if you need any other traces or debug info. > > > > Thanks, > > > > Matthew > > > > > > On 29/07/2025 18:22, Ralph Boehme wrote: > >> Hi Matthew, > >> > >> as a starting point: can you send us a network trace of this? > >> > >> Iirc the mailing list server is not particularily fond of > >> attachements, so either put it somewhere to grab it or file a Samba > >> bug and attach it there. > >> > >> Cheers! > >> -slow > >> > > >-- Thanks, Steve
Paulo Alcantara
2025-Jul-31 17:37 UTC
[Samba] SMB3 Unix Extensions - creating special files
Ralph Boehme <slow at samba.org> writes:> ...adding linux-cifs and Steve to the loop.... > > Looks to be a client issue: the client is checking for existence of the > targets, the server returns ENOENT and then that's it. There no attempt > to create either a symlink nor the fifo as reparse points. > > @Steve: any idea of what could be going wrong? Iirc this is supposed to > be working in the client.With Linux v6.16 and samba master (f1a828016921): root at fed:~# mount.cifs //192.168.124.1/test /mnt/1 -o username=testuser,password=foo-123,unix root at fed:~# mount -t cifs //192.168.124.1/test on /mnt/1 type cifs (rw,relatime,vers=3.1.1,cache=strict,upcall_target=app,username=testuser,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.124.1,file_mode=0755,dir_mode=0755,soft,posix,posixpaths,serverino,reparse=nfs,nativesocket,symlink=unix,rsize=4194304,wsize=4194304,bsize=1048576,retrans=1,echo_interval=60,actimeo=1,closetimeo=1) root at fed:~# (cd /mnt/1; rm -rf *; mknod chr c 2 1; mknod blk b 3 4; mknod fifo p; ln -s f0 l0; python -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('sock')"; ls -lh) ln: failed to create symbolic link 'l0': Operation not supported total 0 brwxrwxrwx 1 root fsgqa 3, 4 Jul 31 14:31 blk crwxrwxrwx 1 root fsgqa 2, 1 Jul 31 14:31 chr prwxrwxrwx 1 root fsgqa 0 Jul 31 14:31 fifo -rwxrwxrwx 1 root fsgqa 0 Jul 31 14:31 sock I see a regression when attempting to create symlinks and sockets. Note the 'nativesocket' and 'symlink=unix' options, which are definitely wrong for SMB3.1.1 POSIX mounts. It should have 'symlink=native' and 'nonativesocket'.
Paulo Alcantara
2025-Jul-31 18:00 UTC
[Samba] SMB3 Unix Extensions - creating special files
Paulo Alcantara <pc at manguebit.org> writes:> Ralph Boehme <slow at samba.org> writes: > >> ...adding linux-cifs and Steve to the loop.... >> >> Looks to be a client issue: the client is checking for existence of the >> targets, the server returns ENOENT and then that's it. There no attempt >> to create either a symlink nor the fifo as reparse points. >> >> @Steve: any idea of what could be going wrong? Iirc this is supposed to >> be working in the client. > > With Linux v6.16 and samba master (f1a828016921): > > root at fed:~# mount.cifs //192.168.124.1/test /mnt/1 -o username=testuser,password=foo-123,unix > root at fed:~# mount -t cifs > //192.168.124.1/test on /mnt/1 type cifs (rw,relatime,vers=3.1.1,cache=strict,upcall_target=app,username=testuser,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.124.1,file_mode=0755,dir_mode=0755,soft,posix,posixpaths,serverino,reparse=nfs,nativesocket,symlink=unix,rsize=4194304,wsize=4194304,bsize=1048576,retrans=1,echo_interval=60,actimeo=1,closetimeo=1) > root at fed:~# (cd /mnt/1; rm -rf *; mknod chr c 2 1; mknod blk b 3 4; mknod fifo p; ln -s f0 l0; python -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('sock')"; ls -lh) > ln: failed to create symbolic link 'l0': Operation not supported > total 0 > brwxrwxrwx 1 root fsgqa 3, 4 Jul 31 14:31 blk > crwxrwxrwx 1 root fsgqa 2, 1 Jul 31 14:31 chr > prwxrwxrwx 1 root fsgqa 0 Jul 31 14:31 fifo > -rwxrwxrwx 1 root fsgqa 0 Jul 31 14:31 sock > > I see a regression when attempting to create symlinks and sockets. Note > the 'nativesocket' and 'symlink=unix' options, which are definitely > wrong for SMB3.1.1 POSIX mounts. It should have 'symlink=native' and > 'nonativesocket'.Looks like a regression caused by 6c06be908ca1 ("cifs: Check if server supports reparse points before using them") By mounting the share again with 'unix,symlink=native,nonativesocket' and getting rid of this check in cifs_symlink() if (le32_to_cpu(pTcon->fsAttrInfo.Attributes) & FILE_SUPPORTS_REPARSE_POINTS) I was able to create symlink and socket: root at fed:~# (cd /mnt/1; rm -rf *; mknod chr c 2 1; mknod blk b 3 4; mknod fifo p; ln -s f0 l0; python -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('sock')"; ls -lh) total 0 brwxrwxrwx 1 root fsgqa 3, 4 Jul 31 14:51 blk crwxrwxrwx 1 root fsgqa 2, 1 Jul 31 14:51 chr prwxrwxrwx 1 root fsgqa 0 Jul 31 14:51 fifo lrwxrwxrwx 1 root fsgqa 2 Jul 31 14:51 l0 -> f0 srwxrwxrwx 1 root fsgqa 0 Jul 31 14:51 sock