With the move to iov_iter handling two issues merged
for the ko2iblnd driver. The first fix address a simple
typo of the wrong flag being used with iov_iter_kvec.
The second fix adds the payload offset to the payload
size.

Signed-off-by: James Simmons <jsimm...@infradead.org>
---
 drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c 
b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c
index 3d597dc..437e149 100644
--- a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c
+++ b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c
@@ -1519,12 +1519,15 @@ kiblnd_send(lnet_ni_t *ni, void *private, lnet_msg_t 
*lntmsg)
        /* payload is either all vaddrs or all pages */
        LASSERT(!(payload_kiov && payload_iov));
 
-       if (payload_kiov)
+       if (payload_kiov) {
                iov_iter_bvec(&from, ITER_BVEC | WRITE,
-                               payload_kiov, payload_niov, payload_nob);
-       else
-               iov_iter_kvec(&from, ITER_BVEC | WRITE,
-                               payload_iov, payload_niov, payload_nob);
+                             payload_kiov, payload_niov,
+                             payload_nob + payload_offset);
+       } else {
+               iov_iter_kvec(&from, ITER_KVEC | WRITE,
+                             payload_iov, payload_niov,
+                             payload_nob + payload_offset);
+       }
        iov_iter_advance(&from, payload_offset);
 
        switch (type) {
-- 
2.7.4

Reply via email to