X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fobdclass%2Fllog_swab.c;h=366dc197bc439b90800fccbe8d07569ff447696d;hb=refs%2Fchanges%2F37%2F11737%2F50;hp=97ed7f43dfaf63ff54edf74c0e5a56ef7a23a13a;hpb=0f22e4c098b1f7885ef509bbfc346b3e8905b28d;p=fs%2Flustre-release.git diff --git a/lustre/obdclass/llog_swab.c b/lustre/obdclass/llog_swab.c index 97ed7f4..366dc19 100644 --- a/lustre/obdclass/llog_swab.c +++ b/lustre/obdclass/llog_swab.c @@ -27,7 +27,7 @@ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. * - * Copyright (c) 2012, 2013, Intel Corporation. + * Copyright (c) 2012, 2014, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -44,6 +44,7 @@ #include +#include static void print_llogd_body(struct llogd_body *d) { @@ -85,7 +86,6 @@ void lustre_swab_llog_id(struct llog_logid *log_id) __swab64s(&log_id->lgl_oi.oi.oi_seq); __swab32s(&log_id->lgl_ogen); } -EXPORT_SYMBOL(lustre_swab_llog_id); void lustre_swab_llogd_body (struct llogd_body *d) { @@ -118,7 +118,6 @@ void lustre_swab_ll_fid(struct ll_fid *fid) __swab32s (&fid->generation); __swab32s (&fid->f_type); } -EXPORT_SYMBOL(lustre_swab_ll_fid); void lustre_swab_lu_seq_range(struct lu_seq_range *range) { @@ -129,6 +128,21 @@ void lustre_swab_lu_seq_range(struct lu_seq_range *range) } EXPORT_SYMBOL(lustre_swab_lu_seq_range); +void lustre_swab_update_ops(struct update_ops *uops, unsigned int op_count) +{ + unsigned int i; + unsigned int j; + + for (i = 0; i < op_count; i++) { + lustre_swab_lu_fid(&uops->uops_op[i].uop_fid); + __swab16s(&uops->uops_op[i].uop_type); + __swab16s(&uops->uops_op[i].uop_param_count); + for (j = 0; j < uops->uops_op[i].uop_param_count; j++) + __swab16s(&uops->uops_op[i].uop_params_off[j]); + } +} +EXPORT_SYMBOL(lustre_swab_update_ops); + void lustre_swab_llog_rec(struct llog_rec_hdr *rec) { struct llog_rec_tail *tail = NULL; @@ -274,6 +288,25 @@ void lustre_swab_llog_rec(struct llog_rec_hdr *rec) } case LLOG_PAD_MAGIC: break; + case UPDATE_REC: + { + struct llog_update_record *lur = + (struct llog_update_record *)rec; + struct update_records *record = &lur->lur_update_rec; + + __swab32s(&record->ur_flags); + __swab64s(&record->ur_batchid); + __swab64s(&record->ur_master_transno); + __swab32s(&record->ur_param_count); + __swab32s(&record->ur_update_count); + lustre_swab_update_ops(&record->ur_ops, + record->ur_update_count); + + /* Compute tail location. */ + tail = (struct llog_rec_tail *)((char *)record + + update_records_size(record)); + break; + } default: CERROR("Unknown llog rec type %#x swabbing rec %p\n", rec->lrh_type, rec); @@ -284,7 +317,6 @@ void lustre_swab_llog_rec(struct llog_rec_hdr *rec) __swab32s(&tail->lrt_index); } } -EXPORT_SYMBOL(lustre_swab_llog_rec); static void print_llog_hdr(struct llog_log_hdr *h) { @@ -363,7 +395,6 @@ void lustre_swab_lustre_cfg(struct lustre_cfg *lcfg) EXIT; return; } -EXPORT_SYMBOL(lustre_swab_lustre_cfg); /* used only for compatibility with old on-disk cfg_marker data */ struct cfg_marker32 { @@ -427,4 +458,3 @@ void lustre_swab_cfg_marker(struct cfg_marker *marker, int swab, int size) EXIT; return; } -EXPORT_SYMBOL(lustre_swab_cfg_marker);