Nicolas Baranger <nicolas.baranger@xxxxxx> writes: > If you need more traces or details on (both?) issues : > > - 1) infinite loop issue during 'cat' or 'copy' since Linux 6.14.0 > > - 2) (don't know if it's related) the very high number of several bytes > TCP packets transmitted in SMB transaction (more than a hundred) for a 5 > bytes file transfert under Linux 6.13.8 According to your mount options and network traces, cat(1) is attempting to read 16M from 'toto' file, in which case netfslib will create 256 subrequests to handle 64K (rsize=65536) reads from 'toto' file. The first 64K read at offset 0 succeeds and server returns 5 bytes, the client then sets NETFS_SREQ_HIT_EOF to indicate that this subrequest hit the EOF. The next subrequests will still be processed by netfslib and sent to the server, but they all fail with STATUS_END_OF_FILE. So, the problem is with short DIO reads in netfslib that are not being handled correctly. It is returning a fixed number of bytes read to every read(2) call in your cat command, 16711680 bytes which is the offset of last subrequest. This will make cat(1) retry forever as netfslib is failing to return the correct number of bytes read, including EOF. While testing a potential fix, I also found other problems with DIO in cifs.ko, so I'm working with Dave to get the proper fixes for both netfslib and cifs.ko. I've noticed that you disabled caching with 'cache=none', is there any particular reason for that? Have you also set rsize, wsize and bsize mount options? If so, why? If you want to keep 'cache=none', then a possible workaround for you would be making rsize and wsize always greater than bsize. The default values (rsize=4194304,wsize=4194304,bsize=1048576) would do it.