]> www.infradead.org Git - users/hch/xfsprogs.git/commitdiff
xfs_logprint: report realtime RUIs
authorDarrick J. Wong <djwong@kernel.org>
Wed, 3 Jul 2024 21:22:25 +0000 (14:22 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Tue, 16 Jul 2024 22:49:22 +0000 (15:49 -0700)
Decode the RUI format just enough to report if an RUI targets the
realtime device or not.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
logprint/log_misc.c
logprint/log_print_all.c
logprint/log_redo.c

index 1df8c5d377c02dba75d4de96b0aceea291187ae0..b6c5faf42426929b0527db7552be88817c54daee 100644 (file)
@@ -1021,12 +1021,14 @@ xlog_print_record(
                                        be32_to_cpu(op_head->oh_len));
                        break;
                    }
+                   case XFS_LI_RUI_RT:
                    case XFS_LI_RUI: {
                        skip = xlog_print_trans_rui(&ptr,
                                        be32_to_cpu(op_head->oh_len),
                                        continued);
                        break;
                    }
+                   case XFS_LI_RUD_RT:
                    case XFS_LI_RUD: {
                        skip = xlog_print_trans_rud(&ptr,
                                        be32_to_cpu(op_head->oh_len));
index 5a9ddd05ab12887a1bd89cf8ace5910a65f0e2b3..93fd3d185f3f65890fd3c73736cb04295002e9bb 100644 (file)
@@ -424,9 +424,11 @@ xlog_recover_print_logitem(
        case XFS_LI_ATTRI:
                xlog_recover_print_attri(item);
                break;
+       case XFS_LI_RUD_RT:
        case XFS_LI_RUD:
                xlog_recover_print_rud(item);
                break;
+       case XFS_LI_RUI_RT:
        case XFS_LI_RUI:
                xlog_recover_print_rui(item);
                break;
@@ -500,6 +502,12 @@ xlog_recover_print_item(
        case XFS_LI_RUI:
                printf("RUI");
                break;
+       case XFS_LI_RUD_RT:
+               printf("RUD_RT");
+               break;
+       case XFS_LI_RUI_RT:
+               printf("RUI_RT");
+               break;
        case XFS_LI_CUD:
                printf("CUD");
                break;
index 41e7c94a52dc216ceae864326b5aa0630f4ee2aa..a0cc558499ae0b78008cbaa5c8d7ba0420e6dafd 100644 (file)
@@ -274,6 +274,7 @@ xlog_print_trans_rui(
        uint                    src_len,
        int                     continued)
 {
+       const char              *item_name = "RUI?";
        struct xfs_rui_log_format       *src_f, *f = NULL;
        uint                    dst_len;
        uint                    nextents;
@@ -318,8 +319,14 @@ xlog_print_trans_rui(
                goto error;
        }
 
-       printf(_("RUI:  #regs: %d       num_extents: %d  id: 0x%llx\n"),
-               f->rui_size, f->rui_nextents, (unsigned long long)f->rui_id);
+       switch (f->rui_type) {
+       case XFS_LI_RUI:        item_name = "RUI"; break;
+       case XFS_LI_RUI_RT:     item_name = "RUI_RT"; break;
+       }
+
+       printf(_("%s:  #regs: %d        num_extents: %d  id: 0x%llx\n"),
+                       item_name, f->rui_size, f->rui_nextents,
+                       (unsigned long long)f->rui_id);
 
        if (continued) {
                printf(_("RUI extent data skipped (CONTINUE set, no space)\n"));
@@ -359,6 +366,7 @@ xlog_print_trans_rud(
        char                            **ptr,
        uint                            len)
 {
+       const char                      *item_name = "RUD?";
        struct xfs_rud_log_format       *f;
        struct xfs_rud_log_format       lbuf;
 
@@ -371,11 +379,17 @@ xlog_print_trans_rud(
         */
        memmove(&lbuf, *ptr, min(core_size, len));
        f = &lbuf;
+
+       switch (f->rud_type) {
+       case XFS_LI_RUD:        item_name = "RUD"; break;
+       case XFS_LI_RUD_RT:     item_name = "RUD_RT"; break;
+       }
+
        *ptr += len;
        if (len >= core_size) {
-               printf(_("RUD:  #regs: %d                        id: 0x%llx\n"),
-                       f->rud_size,
-                       (unsigned long long)f->rud_rui_id);
+               printf(_("%s:  #regs: %d                         id: 0x%llx\n"),
+                               item_name, f->rud_size,
+                               (unsigned long long)f->rud_rui_id);
 
                /* don't print extents as they are not used */