From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 5FEA27FB0 for ; Wed, 19 Jun 2013 00:36:30 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 0BF04AC008 for ; Tue, 18 Jun 2013 22:36:29 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id GDhETondd8dmtki4 for ; Tue, 18 Jun 2013 22:36:28 -0700 (PDT) Received: from disappointment ([192.168.1.1]) by dastard with esmtp (Exim 4.76) (envelope-from ) id 1UpB44-0003AK-9p for xfs@oss.sgi.com; Wed, 19 Jun 2013 15:36:16 +1000 Received: from dave by disappointment with local (Exim 4.80) (envelope-from ) id 1UpB44-0000Dd-66 for xfs@oss.sgi.com; Wed, 19 Jun 2013 15:36:16 +1000 From: Dave Chinner Subject: [PATCH 03/50] xfsprogs: teach logprint about icreate transaction Date: Wed, 19 Jun 2013 15:35:26 +1000 Message-Id: <1371620173-712-4-git-send-email-david@fromorbit.com> In-Reply-To: <1371620173-712-1-git-send-email-david@fromorbit.com> References: <1371620173-712-1-git-send-email-david@fromorbit.com> List-Id: XFS Filesystem from SGI List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: xfs-bounces@oss.sgi.com Sender: xfs-bounces@oss.sgi.com To: xfs@oss.sgi.com From: Dave Chinner Signed-off-by: Dave Chinner --- include/libxlog.h | 1 + logprint/log_misc.c | 36 ++++++++++++++++++++++++++++++++++++ logprint/log_print_all.c | 21 +++++++++++++++++++++ 3 files changed, 58 insertions(+) diff --git a/include/libxlog.h b/include/libxlog.h index bd71bfe..ff711e9 100644 --- a/include/libxlog.h +++ b/include/libxlog.h @@ -51,6 +51,7 @@ struct xlog { #include #include #include +#include typedef union { xlog_rec_header_t hic_header; diff --git a/logprint/log_misc.c b/logprint/log_misc.c index 7012208..9526ec4 100644 --- a/logprint/log_misc.c +++ b/logprint/log_misc.c @@ -70,6 +70,7 @@ char *trans_type[] = { "SWAPEXT", "SB_COUNT", "CHECKPOINT", + "ICREATE", }; typedef struct xlog_split_item { @@ -792,6 +793,35 @@ xlog_print_trans_dquot(xfs_caddr_t *ptr, int len, int *i, int num_ops) } /* xlog_print_trans_dquot */ +STATIC int +xlog_print_trans_icreate( + xfs_caddr_t *ptr, + int len, + int *i, + int num_ops) +{ + struct xfs_icreate_log icl_buf = {0}; + struct xfs_icreate_log *icl; + + memmove(&icl_buf, *ptr, MIN(sizeof(struct xfs_icreate_log), len)); + icl = &icl_buf; + (*i)++; + *ptr += len; + + /* handle complete header only */ + if (len != sizeof(struct xfs_icreate_log)) { + printf(_("ICR: split header, not printing\n")); + return 1; /* to skip leftover in next region */ + } + + printf(_("ICR: #ag: %d agbno: 0x%x len: %d\n" + " cnt: %d isize: %d gen: 0x%x\n"), + be32_to_cpu(icl->icl_ag), be32_to_cpu(icl->icl_agbno), + be32_to_cpu(icl->icl_length), be32_to_cpu(icl->icl_count), + be32_to_cpu(icl->icl_isize), be32_to_cpu(icl->icl_gen)); + return 0; +} + /****************************************************************************** * * Log print routines @@ -974,6 +1004,12 @@ xlog_print_record(int fd, &i, num_ops); break; } + case XFS_LI_ICREATE: { + skip = xlog_print_trans_icreate(&ptr, + be32_to_cpu(op_head->oh_len), + &i, num_ops); + break; + } case XFS_LI_INODE: { skip = xlog_print_trans_inode(&ptr, be32_to_cpu(op_head->oh_len), diff --git a/logprint/log_print_all.c b/logprint/log_print_all.c index 4626186..7f87016 100644 --- a/logprint/log_print_all.c +++ b/logprint/log_print_all.c @@ -435,6 +435,21 @@ xlog_recover_print_efi( free(f); } +STATIC void +xlog_recover_print_icreate( + struct xlog_recover_item *item) +{ + struct xfs_icreate_log *icl; + + icl = (struct xfs_icreate_log *)item->ri_buf[0].i_addr; + + printf(_(" ICR: #ag: %d agbno: 0x%x len: %d\n" + " cnt: %d isize: %d gen: 0x%x\n"), + be32_to_cpu(icl->icl_ag), be32_to_cpu(icl->icl_agbno), + be32_to_cpu(icl->icl_length), be32_to_cpu(icl->icl_count), + be32_to_cpu(icl->icl_isize), be32_to_cpu(icl->icl_gen)); +} + void xlog_recover_print_logitem( xlog_recover_item_t *item) @@ -443,6 +458,9 @@ xlog_recover_print_logitem( case XFS_LI_BUF: xlog_recover_print_buffer(item); break; + case XFS_LI_ICREATE: + xlog_recover_print_icreate(item); + break; case XFS_LI_INODE: xlog_recover_print_inode(item); break; @@ -474,6 +492,9 @@ xlog_recover_print_item( case XFS_LI_BUF: printf("BUF"); break; + case XFS_LI_ICREATE: + printf("ICR"); + break; case XFS_LI_INODE: printf("INO"); break; -- 1.7.10.4 _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs