X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fmgs%2Fmgs_nids.c;h=4420b64c7ceccca7d454c66a953c1e2e24ddfc06;hb=743f742874bfdf845a2f64c3d65081ea23740138;hp=54ce9290a3a98d9d4c986e713b90632b08ec97c3;hpb=1f1d3a376d488d715dd1b0c94d5b66ea05c1e6ca;p=fs%2Flustre-release.git diff --git a/lustre/mgs/mgs_nids.c b/lustre/mgs/mgs_nids.c index 54ce929..4420b64 100644 --- a/lustre/mgs/mgs_nids.c +++ b/lustre/mgs/mgs_nids.c @@ -27,7 +27,7 @@ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. * - * Copyright (c) 2011, 2012, Intel Corporation. + * Copyright (c) 2011, 2015, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -43,6 +43,7 @@ #define DEBUG_SUBSYSTEM S_MGS #define D_MGS D_CONFIG +#include #include #include @@ -134,27 +135,18 @@ static int mgs_nidtbl_read(struct obd_export *exp, struct mgs_nidtbl *tbl, break; } - /* check if we need to consume remaining bytes. */ - if (last_in_unit != NULL && bytes_in_unit) { -#if LUSTRE_VERSION_CODE < OBD_OCD_VERSION(2, 6, 50, 0) - /* May need to swab back to update the length.*/ - if (exp->exp_need_mne_swab) - lustre_swab_mgs_nidtbl_entry(last_in_unit); -#endif + /* check if we need to consume remaining bytes. */ + if (last_in_unit != NULL && bytes_in_unit) { last_in_unit->mne_length += bytes_in_unit; -#if LUSTRE_VERSION_CODE < OBD_OCD_VERSION(2, 6, 50, 0) - if (exp->exp_need_mne_swab) - lustre_swab_mgs_nidtbl_entry(last_in_unit); -#endif - rc += bytes_in_unit; - buf += bytes_in_unit; - last_in_unit = NULL; - } - LASSERT((rc & (unit_size - 1)) == 0); + rc += bytes_in_unit; + buf += bytes_in_unit; + last_in_unit = NULL; + } + LASSERT((rc & (unit_size - 1)) == 0); if (units_in_page == 0) { /* allocate a new page */ - pages[index] = alloc_page(GFP_IOFS); + pages[index] = alloc_page(GFP_KERNEL); if (pages[index] == NULL) { rc = -ENOMEM; break; @@ -188,19 +180,13 @@ static int mgs_nidtbl_read(struct obd_export *exp, struct mgs_nidtbl *tbl, entry->mne_type = tgt->mnt_type; entry->mne_nid_type = 0; entry->mne_nid_size = sizeof(lnet_nid_t); - entry->mne_nid_count = mti->mti_nid_count; - memcpy(entry->u.nids, mti->mti_nids, - mti->mti_nid_count * sizeof(lnet_nid_t)); + entry->mne_nid_count = mti->mti_nid_count; + memcpy(entry->u.nids, mti->mti_nids, + mti->mti_nid_count * sizeof(lnet_nid_t)); -#if LUSTRE_VERSION_CODE < OBD_OCD_VERSION(2, 6, 50, 0) - /* For LU-1644, swab entry for 2.2 clients. */ - if (exp->exp_need_mne_swab) - lustre_swab_mgs_nidtbl_entry(entry); -#endif - - version = tgt->mnt_version; - rc += entry_len; - buf += entry_len; + version = tgt->mnt_version; + rc += entry_len; + buf += entry_len; bytes_in_unit -= entry_len; last_in_unit = entry; @@ -672,18 +658,22 @@ int mgs_get_ir_logs(struct ptlrpc_request *req) page_count = (bytes + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; LASSERT(page_count <= nrpages); desc = ptlrpc_prep_bulk_exp(req, page_count, 1, - BULK_PUT_SOURCE, MGS_BULK_PORTAL); + PTLRPC_BULK_PUT_SOURCE | + PTLRPC_BULK_BUF_KIOV, + MGS_BULK_PORTAL, + &ptlrpc_bulk_kiov_pin_ops); if (desc == NULL) GOTO(out, rc = -ENOMEM); for (i = 0; i < page_count && bytes > 0; i++) { - ptlrpc_prep_bulk_page_pin(desc, pages[i], 0, - min_t(int, bytes, PAGE_CACHE_SIZE)); + desc->bd_frag_ops->add_kiov_frag(desc, pages[i], 0, + min_t(int, bytes, + PAGE_CACHE_SIZE)); bytes -= PAGE_CACHE_SIZE; } rc = target_bulk_io(req->rq_export, desc, &lwi); - ptlrpc_free_bulk_pin(desc); + ptlrpc_free_bulk(desc); out: for (i = 0; i < nrpages; i++) {