diff options
-rw-r--r-- | fs/gfs2/rgrp.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c index 7ce22d8c489b..c17029a92b8f 100644 --- a/fs/gfs2/rgrp.c +++ b/fs/gfs2/rgrp.c | |||
@@ -1596,6 +1596,12 @@ find_next: | |||
1596 | n += (rbm->bi - initial_bi); | 1596 | n += (rbm->bi - initial_bi); |
1597 | goto find_next; | 1597 | goto find_next; |
1598 | } | 1598 | } |
1599 | if (ret == -E2BIG) { | ||
1600 | index = 0; | ||
1601 | rbm->offset = 0; | ||
1602 | n += (rbm->bi - initial_bi); | ||
1603 | goto res_covered_end_of_rgrp; | ||
1604 | } | ||
1599 | return ret; | 1605 | return ret; |
1600 | 1606 | ||
1601 | bitmap_full: /* Mark bitmap as full and fall through */ | 1607 | bitmap_full: /* Mark bitmap as full and fall through */ |
@@ -1608,6 +1614,7 @@ next_bitmap: /* Find next bitmap in the rgrp */ | |||
1608 | index++; | 1614 | index++; |
1609 | if (index == rbm->rgd->rd_length) | 1615 | if (index == rbm->rgd->rd_length) |
1610 | index = 0; | 1616 | index = 0; |
1617 | res_covered_end_of_rgrp: | ||
1611 | rbm->bi = &rbm->rgd->rd_bits[index]; | 1618 | rbm->bi = &rbm->rgd->rd_bits[index]; |
1612 | if ((index == 0) && nowrap) | 1619 | if ((index == 0) && nowrap) |
1613 | break; | 1620 | break; |