]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - fs/ext4/mballoc.c
ext4: replace BUG_ON with WARN_ON in mb_find_extent()
[mirror_ubuntu-artful-kernel.git] / fs / ext4 / mballoc.c
index 7ae43c59bc79578ddc2146328ca050ab68212bd2..ec2f64b0e6962ec04b5b8bf0c8d464b700b9c341 100644 (file)
@@ -1556,7 +1556,17 @@ static int mb_find_extent(struct ext4_buddy *e4b, int block,
                ex->fe_len += 1 << order;
        }
 
-       BUG_ON(ex->fe_start + ex->fe_len > (1 << (e4b->bd_blkbits + 3)));
+       if (ex->fe_start + ex->fe_len > (1 << (e4b->bd_blkbits + 3))) {
+               /* Should never happen! (but apparently sometimes does?!?) */
+               WARN_ON(1);
+               ext4_error(e4b->bd_sb, "corruption or bug in mb_find_extent "
+                          "block=%d, order=%d needed=%d ex=%u/%d/%d@%u",
+                          block, order, needed, ex->fe_group, ex->fe_start,
+                          ex->fe_len, ex->fe_logical);
+               ex->fe_len = 0;
+               ex->fe_start = 0;
+               ex->fe_group = 0;
+       }
        return ex->fe_len;
 }