"XFS: Invalid block length (0x%x) given for buffer" log level

Eric Sandeen sandeen at sandeen.net
Mon Sep 21 13:14:43 CDT 2009


Hey, commit:

commit 3228149ceb8b045e324cd268be9182bb26e6488b
Author: Dave Chinner <david at fromorbit.com>
Date:   Thu Jan 22 15:37:47 2009 +1100

    xfs: Check buffer lengths in log recovery

    Before trying to obtain, read or write a buffer,
    check that the buffer length is actually valid. If
    it is not valid, then something read in the recovery
    process has been corrupted and we should abort
    recovery.

    Reported-by: Eric Sesterhenn <snakebyte at gmx.de>
    Tested-by: Eric Sesterhenn <snakebyte at gmx.de>
    Reviewed-by: Christoph Hellwig <hch at infradead.org>
    Reviewed-by: Felix Blyakher <felixb at sgi.com>
    Signed-off-by: Dave Chinner <david at fromorbit.com>
    Signed-off-by: Felix Blyakher <felixb at sgi.com>

added some XFS_ERROR_REPORTs, but at _HIGH:

+       if (nbblks <= 0 || nbblks > log->l_logBBsize) {
+               xlog_warn("XFS: Invalid block length (0x%x) given for
buffer", nbblks);
+               XFS_ERROR_REPORT("xlog_get_bp(1)",
+                                XFS_ERRLEVEL_HIGH, log->l_mp);
+               return NULL;
+       }

which means unless logging is turned up HIGH (higher than default), we
won't see it.  Should this be HIGH?  Not sure what the original intent was.

-Eric




More information about the xfs mailing list