Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1715996 > unrolled thread
| Started by | Long Li <longli@exchange.microsoft.com> |
|---|---|
| First post | 2017-08-20 21:10 +0200 |
| Last post | 2017-08-20 21:10 +0200 |
| Articles | 1 — 1 participant |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[Patch v2 14/19] CIFS: SMBD: Deregister memory when finishing SMB write Long Li <longli@exchange.microsoft.com> - 2017-08-20 21:10 +0200
| From | Long Li <longli@exchange.microsoft.com> |
|---|---|
| Date | 2017-08-20 21:10 +0200 |
| Subject | [Patch v2 14/19] CIFS: SMBD: Deregister memory when finishing SMB write |
| Message-ID | <ugDLH-2xW-19@gated-at.bofh.it> |
From: Long Li <longli@microsoft.com>
On write I/O finish, deregister the memory region if this was for a RDMA read. The call to smbd_deregister_mr will do local invalidation and possibly wait, if remote invalidate is not used.
Signed-off-by: Long Li <longli@microsoft.com>
---
fs/cifs/smb2pdu.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c
index 5581afd..5551053 100644
--- a/fs/cifs/smb2pdu.c
+++ b/fs/cifs/smb2pdu.c
@@ -2666,6 +2666,18 @@ smb2_writev_callback(struct mid_q_entry *mid)
break;
}
+ /*
+ * If this wdata has a memory registered, the MR can be freed
+ * The number of MRs available is limited, it's important to recover
+ * used MR as soon as I/O is finished. Hold MR longer in the later
+ * I/O process can possibly result in I/O deadlock due to lack of MR
+ * to send request on I/O retry
+ */
+ if (wdata->mr) {
+ smbd_deregister_mr(wdata->mr);
+ wdata->mr = NULL;
+ }
+
if (wdata->result)
cifs_stats_fail_inc(tcon, SMB2_WRITE_HE);
--
2.7.4
Back to top | Article view | linux.kernel
csiph-web