@@ -997,12 +997,14 @@ xlog_print_record(
&i, num_ops);
break;
}
+ case XFS_LI_EFI_RT:
case XFS_LI_EFI: {
skip = xlog_print_trans_efi(&ptr,
be32_to_cpu(op_head->oh_len),
continued);
break;
}
+ case XFS_LI_EFD_RT:
case XFS_LI_EFD: {
skip = xlog_print_trans_efd(&ptr,
be32_to_cpu(op_head->oh_len));
@@ -410,9 +410,11 @@ xlog_recover_print_logitem(
case XFS_LI_INODE:
xlog_recover_print_inode(item);
break;
+ case XFS_LI_EFD_RT:
case XFS_LI_EFD:
xlog_recover_print_efd(item);
break;
+ case XFS_LI_EFI_RT:
case XFS_LI_EFI:
xlog_recover_print_efi(item);
break;
@@ -474,6 +476,12 @@ xlog_recover_print_item(
case XFS_LI_INODE:
printf("INO");
break;
+ case XFS_LI_EFD_RT:
+ printf("EFD_RT");
+ break;
+ case XFS_LI_EFI_RT:
+ printf("EFI_RT");
+ break;
case XFS_LI_EFD:
printf("EFD");
break;
@@ -67,6 +67,7 @@ xlog_print_trans_efi(
uint src_len,
int continued)
{
+ const char *item_name = "EFI?";
xfs_efi_log_format_t *src_f, *f = NULL;
uint dst_len;
xfs_extent_t *ex;
@@ -103,8 +104,14 @@ xlog_print_trans_efi(
goto error;
}
- printf(_("EFI: #regs: %d num_extents: %d id: 0x%llx\n"),
- f->efi_size, f->efi_nextents, (unsigned long long)f->efi_id);
+ switch (f->efi_type) {
+ case XFS_LI_EFI: item_name = "EFI"; break;
+ case XFS_LI_EFI_RT: item_name = "EFI_RT"; break;
+ }
+
+ printf(_("%s: #regs: %d num_extents: %u id: 0x%llx\n"),
+ item_name, f->efi_size, f->efi_nextents,
+ (unsigned long long)f->efi_id);
if (continued) {
printf(_("EFI free extent data skipped (CONTINUE set, no space)\n"));
@@ -113,7 +120,7 @@ xlog_print_trans_efi(
ex = f->efi_extents;
for (i=0; i < f->efi_nextents; i++) {
- printf("(s: 0x%llx, l: %d) ",
+ printf("(s: 0x%llx, l: %u) ",
(unsigned long long)ex->ext_start, ex->ext_len);
if (i % 4 == 3) printf("\n");
ex++;
@@ -130,6 +137,7 @@ void
xlog_recover_print_efi(
struct xlog_recover_item *item)
{
+ const char *item_name = "EFI?";
xfs_efi_log_format_t *f, *src_f;
xfs_extent_t *ex;
int i;
@@ -155,12 +163,18 @@ xlog_recover_print_efi(
return;
}
- printf(_(" EFI: #regs:%d num_extents:%d id:0x%llx\n"),
- f->efi_size, f->efi_nextents, (unsigned long long)f->efi_id);
+ switch (f->efi_type) {
+ case XFS_LI_EFI: item_name = "EFI"; break;
+ case XFS_LI_EFI_RT: item_name = "EFI_RT"; break;
+ }
+
+ printf(_(" %s: #regs:%d num_extents:%u id:0x%llx\n"),
+ item_name, f->efi_size, f->efi_nextents,
+ (unsigned long long)f->efi_id);
ex = f->efi_extents;
printf(" ");
for (i=0; i< f->efi_nextents; i++) {
- printf("(s: 0x%llx, l: %d) ",
+ printf("(s: 0x%llx, l: %u) ",
(unsigned long long)ex->ext_start, ex->ext_len);
if (i % 4 == 3)
printf("\n");
@@ -174,8 +188,10 @@ xlog_recover_print_efi(
int
xlog_print_trans_efd(char **ptr, uint len)
{
- xfs_efd_log_format_t *f;
- xfs_efd_log_format_t lbuf;
+ const char *item_name = "EFD?";
+ xfs_efd_log_format_t *f;
+ xfs_efd_log_format_t lbuf;
+
/* size without extents at end */
uint core_size = sizeof(xfs_efd_log_format_t);
@@ -185,11 +201,17 @@ xlog_print_trans_efd(char **ptr, uint len)
*/
memmove(&lbuf, *ptr, min(core_size, len));
f = &lbuf;
+
+ switch (f->efd_type) {
+ case XFS_LI_EFD: item_name = "EFD"; break;
+ case XFS_LI_EFD_RT: item_name = "EFD_RT"; break;
+ }
+
*ptr += len;
if (len >= core_size) {
- printf(_("EFD: #regs: %d num_extents: %d id: 0x%llx\n"),
- f->efd_size, f->efd_nextents,
- (unsigned long long)f->efd_efi_id);
+ printf(_("%s: #regs: %d num_extents: %d id: 0x%llx\n"),
+ item_name, f->efd_size, f->efd_nextents,
+ (unsigned long long)f->efd_efi_id);
/* don't print extents as they are not used */
@@ -204,18 +226,25 @@ void
xlog_recover_print_efd(
struct xlog_recover_item *item)
{
+ const char *item_name = "EFD?";
xfs_efd_log_format_t *f;
f = (xfs_efd_log_format_t *)item->ri_buf[0].i_addr;
+
+ switch (f->efd_type) {
+ case XFS_LI_EFD: item_name = "EFD"; break;
+ case XFS_LI_EFD_RT: item_name = "EFD_RT"; break;
+ }
+
/*
* An xfs_efd_log_format structure contains a variable length array
* as the last field.
* Each element is of size xfs_extent_32_t or xfs_extent_64_t.
* However, the extents are never used and won't be printed.
*/
- printf(_(" EFD: #regs: %d num_extents: %d id: 0x%llx\n"),
- f->efd_size, f->efd_nextents,
- (unsigned long long)f->efd_efi_id);
+ printf(_(" %s: #regs: %d num_extents: %d id: 0x%llx\n"),
+ item_name, f->efd_size, f->efd_nextents,
+ (unsigned long long)f->efd_efi_id);
}
/* Reverse Mapping Update Items */