int xlog_header_check_recover(xfs_mount_t *mp, xlog_rec_header_t *head) { if (print_record_header) printf(_("\nLOG REC AT LSN cycle %d block %d (0x%x, 0x%x)\n"), CYCLE_LSN(be64_to_cpu(head->h_lsn)), BLOCK_LSN(be64_to_cpu(head->h_lsn)), CYCLE_LSN(be64_to_cpu(head->h_lsn)), BLOCK_LSN(be64_to_cpu(head->h_lsn))); if (be32_to_cpu(head->h_magicno) != XLOG_HEADER_MAGIC_NUM) { printf(_("* ERROR: bad magic number in log header: 0x%x\n"), be32_to_cpu(head->h_magicno)); } else if (header_check_uuid(mp, head)) { /* failed - fall through */ } else if (be32_to_cpu(head->h_fmt) != XLOG_FMT) { printf(_("* ERROR: log format incompatible (log=%d, ours=%d)\n"), be32_to_cpu(head->h_fmt), XLOG_FMT); } else { /* everything is ok */ return 0; } /* bail out now or just carry on regardless */ if (print_exit) xlog_exit(_("Bad log")); return 0; }
void print_xlog_bad_data(xfs_daddr_t blkno) { print_stars(); printf(_("* ERROR: data block=%-21lld *\n"), (long long)blkno); print_stars(); if (print_exit) xlog_exit("Bad data in log"); } /* print_xlog_bad_data */
static void print_xlog_bad_header(xfs_daddr_t blkno, char *buf) { print_stars(); printf(_("* ERROR: header cycle=%-11d block=%-21lld *\n"), xlog_get_cycle(buf), (long long)blkno); print_stars(); if (print_exit) xlog_exit("Bad log record header"); } /* print_xlog_bad_header */
static void print_xlog_bad_zeroed(xfs_daddr_t blkno) { print_stars(); printf(_("* ERROR: found data after zeroed blocks block=%-21lld *\n"), (long long)blkno); print_stars(); if (print_exit) xlog_exit("Bad log - data after zeroed blocks"); } /* print_xlog_bad_zeroed */
int xlog_header_check_mount(xfs_mount_t *mp, xlog_rec_header_t *head) { if (platform_uuid_is_null(&head->h_fs_uuid)) return 0; if (header_check_uuid(mp, head)) { /* bail out now or just carry on regardless */ if (print_exit) xlog_exit(_("Bad log")); } return 0; }
static void print_xlog_bad_reqd_hdrs(xfs_daddr_t blkno, int num_reqd, int num_hdrs) { print_stars(); printf(_("* ERROR: for header block=%lld\n" "* not enough hdrs for data length, " "required num = %d, hdr num = %d\n"), (long long)blkno, num_reqd, num_hdrs); print_stars(); if (print_exit) xlog_exit(_("Not enough headers for data length.")); } /* print_xlog_bad_reqd_hdrs */