]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
Verify end of freespace btree extent is valid
authorBarry Naujok <bnaujok@sgi.com>
Mon, 21 Jan 2008 15:10:06 +0000 (15:10 +0000)
committerBarry Naujok <bnaujok@sgi.com>
Mon, 21 Jan 2008 15:10:06 +0000 (15:10 +0000)
Merge of master-melb:xfs-cmds:30388a by kenmcd.

  Verify end of freespace btree extent is valid

repair/scan.c

index a137cc83da3c8df3c1b9059e50d9c5305570c1d0..b9f7bc9d31d774765eaffb0ca874308956ad2429 100644 (file)
@@ -541,6 +541,8 @@ _("bno freespace btree block claimed (state %d), agno %d, bno %d, suspect %d\n")
 
                        e = INT_GET(rp[i].ar_startblock, ARCH_CONVERT) +
                                INT_GET(rp[i].ar_blockcount, ARCH_CONVERT);
+                       if (!verify_agbno(mp, agno, e - 1))
+                               continue;
                        for (b = INT_GET(rp[i].ar_startblock, ARCH_CONVERT);
                             b < e; b++)  {
                                if (get_agbno_state(mp, agno, b)
@@ -691,6 +693,8 @@ _("bcnt freespace btree block claimed (state %d), agno %d, bno %d, suspect %d\n"
 
                        e = INT_GET(rp[i].ar_startblock, ARCH_CONVERT) +
                                INT_GET(rp[i].ar_blockcount, ARCH_CONVERT);
+                       if (!verify_agbno(mp, agno, e - 1))
+                               continue;
                        for (b = INT_GET(rp[i].ar_startblock, ARCH_CONVERT);
                             b < e; b++)  {
                                state = get_agbno_state(mp, agno, b);