This is an important series, addressing various problems with crediting (flow control) but more importantly patches 4 and 7 deal with error cases in writeback, in writepages and writepage which may be of more general interest. Brian and Jeff have changed loosely related code in the VFS and may have insight into whether additional changes would be helpful beyond what Pavel has done in patches 4 and 7 in this series. ---------- Forwarded message --------- From: Pavel Shilovsky <piastryyy@xxxxxxxxx> Date: Thu, Jan 10, 2019 at 4:25 PM Subject: [PATCH 0/7] SMB3 credit flow control handling and writeback fixes To: <linux-cifs@xxxxxxxxxxxxxxx> Cc: Steve French <smfrench@xxxxxxxxx>, Ronnie Sahlberg <lsahlber@xxxxxxxxxx> This is the series of patches that address few problems with the current code. Patch #1 adjusts credits properly for MTU credits if we didn't use all the credits taken for an operation. This prevents loosing credits in error paths. Patch #2 removes resetting credit number to 1 if server didn't grant us any credits for the compounding chain. The current code didn't follow the protocol correctly. Patch #3 fixes credits handling for compounded requests by taking one credit per part of the chain. All error paths that return credits back are fixed accordingly. Patch #4 fixes hiding EINTR error code returned after an interrupted attemp to send SMB packet through the network. Patch #5 removes wrong assumption that the server grants us one credit for a cancelled request and parse the actual response to get the credit number. Patch #6 moves process credits granted by the server in the demultiplex thread in order to avoid races with reconnects. Patch #7 addresses few problems in writeback code, in particular related to interrupted error code returned by the transport layer. Patches #1-4 as marked for stable. Reviews are welcome. Pavel Shilovsky (7): CIFS: Fix adjustment of credits for MTU requests CIFS: Do not set credits to 1 if the server didn't grant anything CIFS: Fix credit computation for compounded requests CIFS: Do not hide EINTR while sending network packets CIFS: Fix credits calculation for cancelled requests CIFS: Move credit processing to mid callbacks for SMB3 CIFS: Fix error paths in writeback code fs/cifs/cifsglob.h | 20 +++++++++ fs/cifs/cifssmb.c | 7 +-- fs/cifs/file.c | 29 ++++++++++--- fs/cifs/inode.c | 10 +++++ fs/cifs/smb2pdu.c | 8 +++- fs/cifs/transport.c | 122 +++++++++++++++++++++++++++++++++++++++------------- 6 files changed, 155 insertions(+), 41 deletions(-) -- 2.7.4 -- Thanks, Steve