static int mgc_apply_recover_logs(struct obd_device *mgc,
struct config_llog_data *cld,
__u64 max_version,
- void *data, int datalen)
+ void *data, int datalen, int need_swab)
{
struct config_llog_instance *cfg = &cld->cld_cfg;
struct lustre_sb_info *lsi = s2lsi(cfg->cfg_sb);
if (datalen < entry_len) /* must have entry_len at least */
break;
- lustre_swab_mgs_nidtbl_entry(entry);
+ if (need_swab)
+ lustre_swab_mgs_nidtbl_entry(entry);
LASSERT(entry->mne_length <= CFS_PAGE_SIZE);
if (entry->mne_length < entry_len)
break;
ptr = cfs_kmap(pages[i]);
rc2 = mgc_apply_recover_logs(obd, cld, res->mcr_offset, ptr,
- min_t(int, ealen, CFS_PAGE_SIZE));
+ min_t(int, ealen, CFS_PAGE_SIZE),
+ ptlrpc_rep_need_swab(req));
cfs_kunmap(pages[i]);
if (rc2 < 0) {
CWARN("Process recover log %s error %d\n",
/* check if we need to consume remaining bytes. */
if (last_in_unit != NULL && bytes_in_unit) {
- /* entry has been swapped. */
- __swab32s(&last_in_unit->mne_length);
last_in_unit->mne_length += bytes_in_unit;
- __swab32s(&last_in_unit->mne_length);
rc += bytes_in_unit;
buf += bytes_in_unit;
last_in_unit = NULL;
entry->mne_nid_count = mti->mti_nid_count;
memcpy(entry->u.nids, mti->mti_nids,
mti->mti_nid_count * sizeof(lnet_nid_t));
- lustre_swab_mgs_nidtbl_entry(entry);
version = tgt->mnt_version;
rc += entry_len;