#define ENOATTR 989 /* Attribute not found */
#define EFSCORRUPTED 990 /* Filesystem is corrupted */
+#define EFSBADCRC 991 /* Bad CRC detected */
#define constpp char * const *
#define HAVE_FID 1
#define constpp char * const *
#define EFSCORRUPTED 990 /* Filesystem is corrupted */
+#define EFSBADCRC 991 /* Bad CRC detected */
typedef off_t xfs_off_t;
typedef off_t off64_t;
#define constpp char * const *
#define EFSCORRUPTED 990 /* Filesystem is corrupted */
+#define EFSBADCRC 991 /* Bad CRC detected */
typedef off_t xfs_off_t;
typedef __uint64_t xfs_ino_t;
#define xfs_flock64 flock64
#define xfs_flock64_t struct flock64
+#define EFSBADCRC 991 /* Bad CRC detected */
+
typedef struct xfs_error_injection {
__int32_t fd;
__int32_t errtag;
#define ENOATTR ENODATA /* Attribute not found */
#define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
+#define EFSBADCRC EBADMSG /* Bad CRC detected */
typedef loff_t xfs_off_t;
typedef __uint64_t xfs_ino_t;
fputs("\n", stderr);
va_end(ap);
}
+
+/*
+ * Warnings specifically for verifier errors. Differentiate CRC vs. invalid
+ * values, and omit the stack trace unless the error level is tuned high.
+ */
+void
+xfs_verifier_error(
+ struct xfs_buf *bp)
+{
+ xfs_alert(NULL, "Metadata %s detected at block 0x%llx/0x%x",
+ bp->b_error == EFSBADCRC ? "CRC error" : "corruption",
+ bp->b_bn, BBTOB(bp->b_length));
+}
void xfs_trans_mod_sb(xfs_trans_t *, uint, long);
void xfs_trans_init(struct xfs_mount *);
int xfs_trans_roll(struct xfs_trans **, struct xfs_inode *);
+void xfs_verifier_error(struct xfs_buf *bp);