xfs
[Top] [All Lists]

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

To: xfs mailing list <xfs@xxxxxxxxxxx>, David Chinner <dgc@xxxxxxx>
Subject: "XFS: Invalid block length (0x%x) given for buffer" log level
From: Eric Sandeen <sandeen@xxxxxxxxxxx>
Date: Mon, 21 Sep 2009 13:14:43 -0500
User-agent: Thunderbird 2.0.0.21 (X11/20090320)
Hey, commit:

commit 3228149ceb8b045e324cd268be9182bb26e6488b
Author: Dave Chinner <david@xxxxxxxxxxxxx>
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@xxxxxx>
    Tested-by: Eric Sesterhenn <snakebyte@xxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxxxxxxxxx>
    Reviewed-by: Felix Blyakher <felixb@xxxxxxx>
    Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Felix Blyakher <felixb@xxxxxxx>

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

<Prev in Thread] Current Thread [Next in Thread>
  • "XFS: Invalid block length (0x%x) given for buffer" log level, Eric Sandeen <=