testing is going fine so far with David's series ontop of current mainline (I see one possible intermittent server bug failure - on test generic/728 - but no red flags testing so far) http://smb311-linux-testing.southcentralus.cloudapp.azure.com/#/builders/3/builds/207 On Wed, Aug 28, 2024 at 4:03 PM David Howells <dhowells@xxxxxxxxxx> wrote: > > Hi Christian, Steve, > > Firstly, here are some fixes to DIO read handling and the retrying of > reads, particularly in relation to cifs: > > (1) Fix the missing credit renegotiation in cifs on the retrying of reads. > The credits we had ended with the original read (or the last retry) > and to perform a new read we need more credits otherwise the server > can reject our read with EINVAL. > > (2) Fix the handling of short DIO reads to avoid ENODATA when the read > retry tries to access a portion of the file after the EOF. > > Secondly, some patches fixing cifs copy and zero offload: > > (3) Fix cifs_file_copychunk_range() to not try to partially invalidate > folios that are only partly covered by the range, but rather flush > them back and invalidate them. > > (4) Fix filemap_invalidate_inode() to use the correct invalidation > function so that it doesn't leave partially invalidated folios hanging > around (which may hide part of the result of an offloaded copy). > > (5) Fix smb3_zero_data() to correctly handle zeroing of data that's > buffered locally but not yet written back and with the EOF position on > the server short of the local EOF position. > > Note that this will also affect afs and 9p, particularly with regard > to direct I/O writes. > > And finally, here's an adjustment to debugging statements: > > (6) Adjust three debugging output statements. Not strictly a fix, so > could be dropped. Including the subreq ID in some extra debug lines > helps a bit, though. > > The patches can also be found here: > > https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/log/?h=netfs-fixes > > Thanks, > David > > David Howells (6): > cifs: Fix lack of credit renegotiation on read retry > netfs, cifs: Fix handling of short DIO read > cifs: Fix copy offload to flush destination region > mm: Fix filemap_invalidate_inode() to use > invalidate_inode_pages2_range() > cifs: Fix FALLOC_FL_ZERO_RANGE to preflush buffered part of target > region > netfs, cifs: Improve some debugging bits > > fs/netfs/io.c | 21 +++++++++++++------- > fs/smb/client/cifsfs.c | 21 ++++---------------- > fs/smb/client/cifsglob.h | 1 + > fs/smb/client/file.c | 37 ++++++++++++++++++++++++++++++++---- > fs/smb/client/smb2ops.c | 26 +++++++++++++++++++------ > fs/smb/client/smb2pdu.c | 41 +++++++++++++++++++++++++--------------- > fs/smb/client/trace.h | 1 + > include/linux/netfs.h | 1 + > mm/filemap.c | 2 +- > 9 files changed, 101 insertions(+), 50 deletions(-) > > -- Thanks, Steve