X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Futils%2Fllog_reader.c;h=3c994fcc2d7ccc992bf184e3fcf6a88edc3ad513;hb=8bad2c91692e570bb3c8bfa36e053dc4bc72a292;hp=0e5735c1ec7a0e743d72303a660a88a99879d43b;hpb=cc6ce9c787a9a119ac2df673d68114908c34b0a8;p=fs%2Flustre-release.git diff --git a/lustre/utils/llog_reader.c b/lustre/utils/llog_reader.c index 0e5735c..3c994fc 100644 --- a/lustre/utils/llog_reader.c +++ b/lustre/utils/llog_reader.c @@ -1,6 +1,4 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: - * +/* * GPL HEADER START * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -28,9 +26,8 @@ /* * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. - */ -/* - * Copyright (c) 2011 Whamcloud, Inc. + * + * Copyright (c) 2011, 2012, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -175,7 +172,7 @@ int llog_pack_buffer(int fd, struct llog_log_hdr **llog, cur_rec->lrh_type, cur_rec->lrh_len); } else { printf("Bit %d of %d not set\n", idx, recs_num); - cur_rec->lrh_padding = CANCELLED; + cur_rec->lrh_id = CANCELLED; /* The header counts only set records */ i--; } @@ -364,11 +361,16 @@ void print_lustre_cfg(struct lustre_cfg *lcfg, int *skip) print_1_cfg(lcfg); break; } - case(LCFG_PARAM):{ - printf("param "); - print_1_cfg(lcfg); - break; - } + case(LCFG_PARAM):{ + printf("param "); + print_1_cfg(lcfg); + break; + } + case(LCFG_SET_PARAM):{ + printf("set_param "); + print_1_cfg(lcfg); + break; + } case(LCFG_SPTLRPC_CONF):{ printf("sptlrpc_conf "); print_1_cfg(lcfg); @@ -458,28 +460,72 @@ void print_lustre_cfg(struct lustre_cfg *lcfg, int *skip) return; } -void print_records(struct llog_rec_hdr **recs, int rec_number) +static void print_logid(struct llog_logid_rec *lid) { - __u32 lopt; - int i, skip = 0; - - for(i = 0; i < rec_number; i++) { - printf("#%.2d (%.3d)", le32_to_cpu(recs[i]->lrh_index), - le32_to_cpu(recs[i]->lrh_len)); - - lopt = le32_to_cpu(recs[i]->lrh_type); + printf("ogen=%X name="DOSTID"\n", + lid->lid_id.lgl_ogen, + POSTID(&lid->lid_id.lgl_oi)); +} - if (recs[i]->lrh_padding == CANCELLED) - printf("NOT SET "); +static void print_hsm_action(struct llog_agent_req_rec *larr) +{ + char buf[12]; + int sz; + + sz = larr->arr_hai.hai_len - sizeof(larr->arr_hai); + printf("lrh=[type=%X len=%d idx=%d] fid="DFID + " compound/cookie="LPX64"/"LPX64 + " status=%s action=%s archive#=%d flags="LPX64 + " create="LPU64" change="LPU64 + " extent="LPX64"-"LPX64" gid="LPX64" datalen=%d" + " data=[%s]\n", + larr->arr_hdr.lrh_type, + larr->arr_hdr.lrh_len, larr->arr_hdr.lrh_index, + PFID(&larr->arr_hai.hai_fid), + larr->arr_compound_id, larr->arr_hai.hai_cookie, + agent_req_status2name(larr->arr_status), + hsm_copytool_action2name(larr->arr_hai.hai_action), + larr->arr_archive_id, + larr->arr_flags, + larr->arr_req_create, larr->arr_req_change, + larr->arr_hai.hai_extent.offset, + larr->arr_hai.hai_extent.length, + larr->arr_hai.hai_gid, sz, + hai_dump_data_field(&larr->arr_hai, buf, sizeof(buf))); +} - if (lopt == OBD_CFG_REC) { - struct lustre_cfg *lcfg; - lcfg = (struct lustre_cfg *)((char*)(recs[i]) + - sizeof(struct llog_rec_hdr)); - print_lustre_cfg(lcfg, &skip); - } else if (lopt == LLOG_PAD_MAGIC) { - printf("padding\n"); - } else - printf("unknown type %x\n", lopt); - } +void print_records(struct llog_rec_hdr **recs, int rec_number) +{ + __u32 lopt; + int i, skip = 0; + + for (i = 0; i < rec_number; i++) { + printf("#%.2d (%.3d)", le32_to_cpu(recs[i]->lrh_index), + le32_to_cpu(recs[i]->lrh_len)); + + lopt = le32_to_cpu(recs[i]->lrh_type); + + if (recs[i]->lrh_id == CANCELLED) + printf("NOT SET "); + + switch (lopt) { + case OBD_CFG_REC: + print_lustre_cfg( + (struct lustre_cfg *)((char *)(recs[i]) + + sizeof(struct llog_rec_hdr)), &skip); + break; + case LLOG_PAD_MAGIC: + printf("padding\n"); + break; + case LLOG_LOGID_MAGIC: + print_logid((struct llog_logid_rec *)recs[i]); + break; + case HSM_AGENT_REC: + print_hsm_action((struct llog_agent_req_rec *)recs[i]); + break; + default: + printf("unknown type %x\n", lopt); + break; + } + } }