From 80447caf980699fd1b0118e8f7c11e48aead04ce Mon Sep 17 00:00:00 2001 From: Alexander Zarochentsev Date: Fri, 16 Jul 2021 22:16:29 +0300 Subject: [PATCH] LU-14926 utils: print unlink and setattr recs in llog_reader Enhance llog_reader to print unlink and setattr llog records correctly. HPE-bug-id: LUS-10220 Signed-off-by: Alexander Zarochentsev Change-Id: I7b44f65c976459d143521185a807939524f67fa2 Reviewed-on: https://review.whamcloud.com/44591 Reviewed-by: Andreas Dilger Reviewed-by: Alexander Boyko Tested-by: jenkins Tested-by: Maloo Reviewed-by: Andrew Perepechko Reviewed-by: Oleg Drokin --- lustre/utils/llog_reader.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/lustre/utils/llog_reader.c b/lustre/utils/llog_reader.c index dd3d4e6..b03d5df 100644 --- a/lustre/utils/llog_reader.c +++ b/lustre/utils/llog_reader.c @@ -916,6 +916,48 @@ void print_update_rec(struct llog_update_record *lur) } +static void print_unlink_rec(struct llog_unlink_rec *lur) +{ + printf("unlink record id:0x%x target %llx:%x:%x\n", + __le32_to_cpu(lur->lur_hdr.lrh_id), + __le64_to_cpu(lur->lur_oid), + __le32_to_cpu(lur->lur_oseq), + __le32_to_cpu(lur->lur_count)); +} + +static void print_unlink64_rec(struct llog_unlink64_rec *lur) +{ + printf("unlink64 record id:0x%x target "DFID"\n", + __le32_to_cpu(lur->lur_hdr.lrh_id), + PFID(&lur->lur_fid)); +} + +static void print_setattr64_rec(struct llog_setattr64_rec *lsr) +{ + printf("setattr64 record id:0x%x target "DFID" valid %llx uid %u:%u gid %u:%u\n", + __le32_to_cpu(lsr->lsr_hdr.lrh_id), + PFID(&lsr->lsr_oi.oi_fid), + __le64_to_cpu(lsr->lsr_valid), + __le32_to_cpu(lsr->lsr_uid_h), + __le32_to_cpu(lsr->lsr_uid), + __le32_to_cpu(lsr->lsr_gid_h), + __le32_to_cpu(lsr->lsr_gid)); +} + +static void print_setattr64_rec_v2(struct llog_setattr64_rec_v2 *lsr) +{ + printf("setattr64 v2 record id:0x%x target "DFID" valid %llx uid %u:%u gid %u:%u prj %u\n", + __le32_to_cpu(lsr->lsr_hdr.lrh_id), + PFID(&lsr->lsr_oi.oi_fid), + __le64_to_cpu(lsr->lsr_valid), + __le32_to_cpu(lsr->lsr_uid_h), + __le32_to_cpu(lsr->lsr_uid), + __le32_to_cpu(lsr->lsr_gid_h), + __le32_to_cpu(lsr->lsr_gid), + __le32_to_cpu(lsr->lsr_projid)); +} + + static void print_records(struct llog_rec_hdr **recs, int rec_number, int is_ext) { @@ -965,6 +1007,22 @@ static void print_records(struct llog_rec_hdr **recs, case UPDATE_REC: print_update_rec((struct llog_update_record *)recs[i]); break; + case MDS_UNLINK_REC: + print_unlink_rec((struct llog_unlink_rec *)recs[i]); + break; + case MDS_UNLINK64_REC: + print_unlink64_rec((struct llog_unlink64_rec *)recs[i]); + break; + case MDS_SETATTR64_REC: + if (__le32_to_cpu(recs[i]->lrh_len) > + sizeof(struct llog_setattr64_rec)) { + print_setattr64_rec_v2( + (struct llog_setattr64_rec_v2 *)recs[i]); + } else { + print_setattr64_rec( + (struct llog_setattr64_rec *)recs[i]); + } + break; default: printf("unknown type %x\n", lopt); break; -- 1.8.3.1