]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
svcrdma: use bvec-based RDMA read/write API
authorChuck Lever <chuck.lever@oracle.com>
Wed, 28 Jan 2026 00:54:00 +0000 (19:54 -0500)
committerLeon Romanovsky <leon@kernel.org>
Wed, 28 Jan 2026 10:54:53 +0000 (05:54 -0500)
commit5ee62b4a91137557ee4b09d1604f1dfd0b4344a8
tree0c5f67d84c576558f49a419e8106355783991f28
parentafcae7d7b8a278a6c29e064f99e5bafd4ac1fb37
svcrdma: use bvec-based RDMA read/write API

Convert svcrdma to the bvec-based RDMA API introduced earlier in
this series.

The bvec-based RDMA API eliminates the intermediate scatterlist
conversion step, allowing direct DMA mapping from bio_vec arrays.
This simplifies the svc_rdma_rw_ctxt structure by removing the
chained SG table management.

The structure retains an inline array approach similar to the
previous scatterlist implementation: an inline bvec array sized
to max_send_sge handles most I/O operations without additional
allocation. Larger requests fall back to dynamic allocation.
This preserves the allocation-free fast path for typical NFS
operations while supporting arbitrarily large transfers.

The bvec API handles all device types internally, including iWARP
devices which require memory registration. No explicit fallback
path is needed.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Link: https://patch.msgid.link/20260128005400.25147-6-cel@kernel.org
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
net/sunrpc/xprtrdma/svc_rdma_rw.c