diff options
author | David Howells <dhowells@redhat.com> | 2023-01-25 14:34:38 +0100 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2023-02-21 01:36:02 +0100 |
commit | 3d78fe73fa123964be30f0acec449dc8a2241dae (patch) | |
tree | 345567ef8d7c80b6ed4acfe94fdcb50e06f98d58 /fs/cifs/smbdirect.h | |
parent | cifs: Change the I/O paths to use an iterator rather than a page list (diff) | |
download | linux-3d78fe73fa123964be30f0acec449dc8a2241dae.tar.xz linux-3d78fe73fa123964be30f0acec449dc8a2241dae.zip |
cifs: Build the RDMA SGE list directly from an iterator
In the depths of the cifs RDMA code, extract part of an iov iterator
directly into an SGE list without going through an intermediate
scatterlist.
Note that this doesn't support extraction from an IOBUF- or UBUF-type
iterator (ie. user-supplied buffer). The assumption is that the higher
layers will extract those to a BVEC-type iterator first and do whatever is
required to stop the pages from going away.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Steve French <sfrench@samba.org>
cc: Shyam Prasad N <nspmangalore@gmail.com>
cc: Rohith Surabattula <rohiths.msft@gmail.com>
cc: Tom Talpey <tom@talpey.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: linux-cifs@vger.kernel.org
cc: linux-rdma@vger.kernel.org
Link: https://lore.kernel.org/r/166697260361.61150.5064013393408112197.stgit@warthog.procyon.org.uk/ # rfc
Link: https://lore.kernel.org/r/166732032518.3186319.1859601819981624629.stgit@warthog.procyon.org.uk/ # rfc
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/cifs/smbdirect.h')
-rw-r--r-- | fs/cifs/smbdirect.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/cifs/smbdirect.h b/fs/cifs/smbdirect.h index be2cf18b7fec..83f239f376f0 100644 --- a/fs/cifs/smbdirect.h +++ b/fs/cifs/smbdirect.h @@ -288,8 +288,7 @@ struct smbd_mr { struct list_head list; enum mr_state state; struct ib_mr *mr; - struct scatterlist *sgl; - int sgl_count; + struct sg_table sgt; enum dma_data_direction dir; union { struct ib_reg_wr wr; |