Whamcloud - gitweb
LU-5835 ptlrpc: Introduce iovec to bulk descriptor
[fs/lustre-release.git] / lustre / ptlrpc / pers.c
index 334deb8..4a66fb8 100644 (file)
@@ -55,24 +55,24 @@ void ptlrpc_fill_bulk_md(lnet_md_t *md, struct ptlrpc_bulk_desc *desc,
        LASSERT(!(md->options & (LNET_MD_IOVEC | LNET_MD_KIOV |
                                 LNET_MD_PHYS)));
 
-       md->options |= LNET_MD_KIOV;
        md->length = max(0, desc->bd_iov_count - mdidx * LNET_MAX_IOV);
        md->length = min_t(unsigned int, LNET_MAX_IOV, md->length);
-       if (desc->bd_enc_iov)
-               md->start = &desc->bd_enc_iov[mdidx * LNET_MAX_IOV];
-       else
-               md->start = &desc->bd_iov[mdidx * LNET_MAX_IOV];
-}
-
-void ptlrpc_add_bulk_page(struct ptlrpc_bulk_desc *desc, struct page *page,
-                          int pageoffset, int len)
-{
-        lnet_kiov_t *kiov = &desc->bd_iov[desc->bd_iov_count];
 
-        kiov->kiov_page = page;
-        kiov->kiov_offset = pageoffset;
-        kiov->kiov_len = len;
-
-        desc->bd_iov_count++;
+       if (ptlrpc_is_bulk_desc_kiov(desc->bd_type)) {
+               md->options |= LNET_MD_KIOV;
+               if (GET_ENC_KIOV(desc))
+                       md->start = &BD_GET_ENC_KIOV(desc, mdidx *
+                                                    LNET_MAX_IOV);
+               else
+                       md->start = &BD_GET_KIOV(desc, mdidx * LNET_MAX_IOV);
+       } else if (ptlrpc_is_bulk_desc_kvec(desc->bd_type)) {
+               md->options |= LNET_MD_IOVEC;
+               if (GET_ENC_KVEC(desc))
+                       md->start = &BD_GET_ENC_KVEC(desc, mdidx *
+                                                     LNET_MAX_IOV);
+               else
+                       md->start = &BD_GET_KVEC(desc, mdidx * LNET_MAX_IOV);
+       }
 }
 
+