Whamcloud - gitweb
LU-4751 hsm: Fix sanity-hsm tests for non-mrsh $PDSH
[fs/lustre-release.git] / lnet / selftest / rpc.c
index b85ba9a..b8cc842 100644 (file)
@@ -88,9 +88,9 @@ void srpc_set_counters (const srpc_counters_t *cnt)
 }
 
 int
-srpc_add_bulk_page(srpc_bulk_t *bk, cfs_page_t *pg, int i, int nob)
+srpc_add_bulk_page(srpc_bulk_t *bk, struct page *pg, int i, int nob)
 {
-       nob = min(nob, (int)CFS_PAGE_SIZE);
+       nob = min(nob, (int)PAGE_CACHE_SIZE);
 
        LASSERT(nob > 0);
        LASSERT(i >= 0 && i < bk->bk_niov);
@@ -104,7 +104,7 @@ srpc_add_bulk_page(srpc_bulk_t *bk, cfs_page_t *pg, int i, int nob)
 
        bk->bk_pages[i] = pg;
        bk->bk_iovs[i].iov_len  = nob;
-       bk->bk_iovs[i].iov_base = cfs_page_address(pg);
+       bk->bk_iovs[i].iov_base = page_address(pg);
 #endif
        return nob;
 }
@@ -113,7 +113,7 @@ void
 srpc_free_bulk (srpc_bulk_t *bk)
 {
         int         i;
-        cfs_page_t *pg;
+       struct page *pg;
 
         LASSERT (bk != NULL);
 #ifndef __KERNEL__
@@ -128,11 +128,11 @@ srpc_free_bulk (srpc_bulk_t *bk)
 #endif
                 if (pg == NULL) break;
 
-                cfs_free_page(pg);
+               __free_page(pg);
         }
 
 #ifndef __KERNEL__
-        LIBCFS_FREE(bk->bk_pages, sizeof(cfs_page_t *) * bk->bk_niov);
+       LIBCFS_FREE(bk->bk_pages, sizeof(struct page *) * bk->bk_niov);
 #endif
         LIBCFS_FREE(bk, offsetof(srpc_bulk_t, bk_iovs[bk->bk_niov]));
         return;
@@ -142,7 +142,6 @@ srpc_bulk_t *
 srpc_alloc_bulk(int cpt, unsigned bulk_npg, unsigned bulk_len, int sink)
 {
        srpc_bulk_t  *bk;
-       cfs_page_t  **pages;
        int           i;
 
        LASSERT(bulk_npg > 0 && bulk_npg <= LNET_MAX_IOV);
@@ -159,25 +158,29 @@ srpc_alloc_bulk(int cpt, unsigned bulk_npg, unsigned bulk_len, int sink)
        bk->bk_len    = bulk_len;
        bk->bk_niov   = bulk_npg;
 #ifndef __KERNEL__
-       LIBCFS_CPT_ALLOC(pages, lnet_cpt_table(), cpt,
-                        sizeof(cfs_page_t *) * bulk_npg);
-       if (pages == NULL) {
-               LIBCFS_FREE(bk, offsetof(srpc_bulk_t, bk_iovs[bulk_npg]));
-               CERROR("Can't allocate page array for %d pages\n", bulk_npg);
-               return NULL;
-       }
+       {
+               struct page  **pages;
+
+               LIBCFS_CPT_ALLOC(pages, lnet_cpt_table(), cpt,
+                                sizeof(struct page *) * bulk_npg);
+               if (pages == NULL) {
+                       LIBCFS_FREE(bk, offsetof(srpc_bulk_t,
+                                   bk_iovs[bulk_npg]));
+                       CERROR("Can't allocate page array for %d pages\n",
+                               bulk_npg);
+                       return NULL;
+               }
 
-       memset(pages, 0, sizeof(cfs_page_t *) * bulk_npg);
-       bk->bk_pages = pages;
-#else
-       UNUSED(pages);
+               memset(pages, 0, sizeof(struct page *) * bulk_npg);
+               bk->bk_pages = pages;
+       }
 #endif
 
        for (i = 0; i < bulk_npg; i++) {
-               cfs_page_t *pg;
+               struct page *pg;
                int         nob;
 
-               pg = cfs_page_cpt_alloc(lnet_cpt_table(), cpt, CFS_ALLOC_STD);
+               pg = cfs_page_cpt_alloc(lnet_cpt_table(), cpt, GFP_IOFS);
                if (pg == NULL) {
                        CERROR("Can't allocate page %d of %d\n", i, bulk_npg);
                        srpc_free_bulk(bk);
@@ -691,8 +694,10 @@ srpc_finish_service(struct srpc_service *sv)
 
        cfs_percpt_for_each(scd, i, sv->sv_cpt_data) {
                spin_lock(&scd->scd_lock);
-               if (!swi_deschedule_workitem(&scd->scd_buf_wi))
+               if (!swi_deschedule_workitem(&scd->scd_buf_wi)) {
+                       spin_unlock(&scd->scd_lock);
                        return 0;
+               }
 
                if (scd->scd_buf_nposted > 0) {
                        CDEBUG(D_NET, "waiting for %d posted buffers to unlink",
@@ -1162,7 +1167,7 @@ srpc_del_client_rpc_timer (srpc_client_rpc_t *rpc)
        while (rpc->crpc_timeout != 0) {
                spin_unlock(&rpc->crpc_lock);
 
-               cfs_schedule();
+               schedule();
 
                spin_lock(&rpc->crpc_lock);
        }
@@ -1213,13 +1218,20 @@ int
 srpc_send_rpc (swi_workitem_t *wi)
 {
         int                rc = 0;
-        srpc_client_rpc_t *rpc = wi->swi_workitem.wi_data;
-        srpc_msg_t        *reply = &rpc->crpc_replymsg;
-        int                do_bulk = rpc->crpc_bulk.bk_niov > 0;
+       srpc_client_rpc_t *rpc;
+       srpc_msg_t        *reply;
+       int                do_bulk;
+
+       LASSERT(wi != NULL);
+
+       rpc = wi->swi_workitem.wi_data;
 
         LASSERT (rpc != NULL);
         LASSERT (wi == &rpc->crpc_wi);
 
+       reply = &rpc->crpc_replymsg;
+       do_bulk = rpc->crpc_bulk.bk_niov > 0;
+
        spin_lock(&rpc->crpc_lock);
 
        if (rpc->crpc_aborted) {
@@ -1432,21 +1444,21 @@ void
 srpc_lnet_ev_handler(lnet_event_t *ev)
 {
        struct srpc_service_cd  *scd;
-        srpc_event_t      *rpcev = ev->md.user_ptr;
-        srpc_client_rpc_t *crpc;
-        srpc_server_rpc_t *srpc;
-        srpc_buffer_t     *buffer;
-        srpc_service_t    *sv;
-        srpc_msg_t        *msg;
-        srpc_msg_type_t    type;
+       srpc_event_t      *rpcev = ev->md.user_ptr;
+       srpc_client_rpc_t *crpc;
+       srpc_server_rpc_t *srpc;
+       srpc_buffer_t     *buffer;
+       srpc_service_t    *sv;
+       srpc_msg_t        *msg;
+       srpc_msg_type_t    type;
 
-        LASSERT (!cfs_in_interrupt());
+       LASSERT (!in_interrupt());
 
-        if (ev->status != 0) {
+       if (ev->status != 0) {
                spin_lock(&srpc_data.rpc_glock);
                srpc_data.rpc_counters.errors++;
                spin_unlock(&srpc_data.rpc_glock);
-        }
+       }
 
         rpcev->ev_lnet = ev->type;