Whamcloud - gitweb
LU-12564 libcfs: Use vfree_atomic instead of vfree
[fs/lustre-release.git] / lustre / mgs / mgs_nids.c
index 6add08e..0d00403 100644 (file)
@@ -363,7 +363,7 @@ out:
 static void mgs_nidtbl_fini_fs(struct fs_db *fsdb)
 {
        struct mgs_nidtbl *tbl = &fsdb->fsdb_nidtbl;
-       struct list_head head = LIST_HEAD_INIT(head);
+       LIST_HEAD(head);
 
        mutex_lock(&tbl->mn_lock);
        tbl->mn_nr_targets = 0;
@@ -427,19 +427,17 @@ static int mgs_ir_notify(void *arg)
        struct ldlm_res_id resid;
        char name[sizeof(fsdb->fsdb_name) + 16];
 
-       CLASSERT(sizeof(name) < 40); /* name is too large to be on stack */
+       BUILD_BUG_ON(sizeof(name) >= 40); /* name is too large to be on stack */
 
        snprintf(name, sizeof(name) - 1, "mgs_%s_notify", fsdb->fsdb_name);
        complete(&fsdb->fsdb_notify_comp);
        set_user_nice(current, -2);
        mgc_fsname2resid(fsdb->fsdb_name, &resid, CONFIG_T_RECOVER);
        while (1) {
-               struct l_wait_info   lwi = { 0 };
+               wait_event_idle(fsdb->fsdb_notify_waitq,
+                               fsdb->fsdb_notify_stop ||
+                               atomic_read(&fsdb->fsdb_notify_phase));
 
-               l_wait_event(fsdb->fsdb_notify_waitq,
-                            fsdb->fsdb_notify_stop ||
-                            atomic_read(&fsdb->fsdb_notify_phase),
-                            &lwi);
                if (fsdb->fsdb_notify_stop)
                        break;
 
@@ -602,7 +600,6 @@ int mgs_get_ir_logs(struct ptlrpc_request *req)
        struct mgs_config_body *body;
        struct mgs_config_res *res;
        struct ptlrpc_bulk_desc *desc;
-       struct l_wait_info lwi;
        char fsname[16];
        long bufsize;
        int unit_size;
@@ -639,7 +636,7 @@ int mgs_get_ir_logs(struct ptlrpc_request *req)
        CDEBUG(D_MGS, "Reading IR log %s bufsize %ld.\n",
               body->mcb_name, bufsize);
 
-       OBD_ALLOC(pages, sizeof(*pages) * nrpages);
+       OBD_ALLOC_PTR_ARRAY(pages, nrpages);
        if (!pages)
                GOTO(out, rc = -ENOMEM);
 
@@ -658,8 +655,7 @@ int mgs_get_ir_logs(struct ptlrpc_request *req)
        page_count = (bytes + PAGE_SIZE - 1) >> PAGE_SHIFT;
        LASSERT(page_count <= nrpages);
        desc = ptlrpc_prep_bulk_exp(req, page_count, 1,
-                                   PTLRPC_BULK_PUT_SOURCE |
-                                       PTLRPC_BULK_BUF_KIOV,
+                                   PTLRPC_BULK_PUT_SOURCE,
                                    MGS_BULK_PORTAL,
                                    &ptlrpc_bulk_kiov_pin_ops);
        if (!desc)
@@ -672,7 +668,7 @@ int mgs_get_ir_logs(struct ptlrpc_request *req)
                bytes -= PAGE_SIZE;
        }
 
-       rc = target_bulk_io(req->rq_export, desc, &lwi);
+       rc = target_bulk_io(req->rq_export, desc);
        ptlrpc_free_bulk(desc);
 
        GOTO(out, rc);
@@ -686,7 +682,7 @@ out:
                        __free_page(pages[i]);
                }
 
-               OBD_FREE(pages, sizeof(*pages) * nrpages);
+               OBD_FREE_PTR_ARRAY(pages, nrpages);
        }
 
        if (fsdb)
@@ -925,7 +921,7 @@ void mgs_fsc_cleanup(struct obd_export *exp)
 {
        struct mgs_export_data *data = &exp->u.eu_mgs_data;
        struct mgs_fsc *fsc, *tmp;
-       struct list_head head = LIST_HEAD_INIT(head);
+       LIST_HEAD(head);
 
        spin_lock(&data->med_lock);
        list_splice_init(&data->med_clients, &head);