Lines Matching refs:ex
1493 int needed, struct ext4_free_extent *ex) in mb_find_extent() argument
1500 BUG_ON(ex == NULL); in mb_find_extent()
1506 ex->fe_len = 0; in mb_find_extent()
1507 ex->fe_start = 0; in mb_find_extent()
1508 ex->fe_group = 0; in mb_find_extent()
1516 ex->fe_len = 1 << order; in mb_find_extent()
1517 ex->fe_start = block << order; in mb_find_extent()
1518 ex->fe_group = e4b->bd_group; in mb_find_extent()
1521 next = next - ex->fe_start; in mb_find_extent()
1522 ex->fe_len -= next; in mb_find_extent()
1523 ex->fe_start += next; in mb_find_extent()
1525 while (needed > ex->fe_len && in mb_find_extent()
1538 ex->fe_len += 1 << order; in mb_find_extent()
1541 BUG_ON(ex->fe_start + ex->fe_len > (1 << (e4b->bd_blkbits + 3))); in mb_find_extent()
1542 return ex->fe_len; in mb_find_extent()
1545 static int mb_mark_used(struct ext4_buddy *e4b, struct ext4_free_extent *ex) in mb_mark_used() argument
1551 int start = ex->fe_start; in mb_mark_used()
1552 int len = ex->fe_len; in mb_mark_used()
1558 BUG_ON(e4b->bd_group != ex->fe_group); in mb_mark_used()
1614 ext4_set_bits(e4b->bd_bitmap, ex->fe_start, len0); in mb_mark_used()
1675 struct ext4_free_extent ex; in ext4_mb_check_limits() local
1700 max = mb_find_extent(e4b, bex->fe_start, gex->fe_len, &ex); in ext4_mb_check_limits()
1719 struct ext4_free_extent *ex, in ext4_mb_measure_extent() argument
1725 BUG_ON(ex->fe_len <= 0); in ext4_mb_measure_extent()
1726 BUG_ON(ex->fe_len > EXT4_CLUSTERS_PER_GROUP(ac->ac_sb)); in ext4_mb_measure_extent()
1727 BUG_ON(ex->fe_start >= EXT4_CLUSTERS_PER_GROUP(ac->ac_sb)); in ext4_mb_measure_extent()
1736 *bex = *ex; in ext4_mb_measure_extent()
1744 if (ex->fe_len == gex->fe_len) { in ext4_mb_measure_extent()
1745 *bex = *ex; in ext4_mb_measure_extent()
1754 *bex = *ex; in ext4_mb_measure_extent()
1764 if (ex->fe_len > bex->fe_len) in ext4_mb_measure_extent()
1765 *bex = *ex; in ext4_mb_measure_extent()
1766 } else if (ex->fe_len > gex->fe_len) { in ext4_mb_measure_extent()
1770 if (ex->fe_len < bex->fe_len) in ext4_mb_measure_extent()
1771 *bex = *ex; in ext4_mb_measure_extent()
1781 struct ext4_free_extent ex = ac->ac_b_ex; in ext4_mb_try_best_found() local
1782 ext4_group_t group = ex.fe_group; in ext4_mb_try_best_found()
1786 BUG_ON(ex.fe_len <= 0); in ext4_mb_try_best_found()
1792 max = mb_find_extent(e4b, ex.fe_start, ex.fe_len, &ex); in ext4_mb_try_best_found()
1795 ac->ac_b_ex = ex; in ext4_mb_try_best_found()
1814 struct ext4_free_extent ex; in ext4_mb_find_by_goal() local
1832 ac->ac_g_ex.fe_len, &ex); in ext4_mb_find_by_goal()
1833 ex.fe_logical = 0xDEADFA11; /* debug value */ in ext4_mb_find_by_goal()
1839 ex.fe_start; in ext4_mb_find_by_goal()
1843 ac->ac_b_ex = ex; in ext4_mb_find_by_goal()
1847 BUG_ON(ex.fe_len <= 0); in ext4_mb_find_by_goal()
1848 BUG_ON(ex.fe_group != ac->ac_g_ex.fe_group); in ext4_mb_find_by_goal()
1849 BUG_ON(ex.fe_start != ac->ac_g_ex.fe_start); in ext4_mb_find_by_goal()
1851 ac->ac_b_ex = ex; in ext4_mb_find_by_goal()
1856 BUG_ON(ex.fe_len <= 0); in ext4_mb_find_by_goal()
1857 BUG_ON(ex.fe_group != ac->ac_g_ex.fe_group); in ext4_mb_find_by_goal()
1858 BUG_ON(ex.fe_start != ac->ac_g_ex.fe_start); in ext4_mb_find_by_goal()
1860 ac->ac_b_ex = ex; in ext4_mb_find_by_goal()
1923 struct ext4_free_extent ex; in ext4_mb_complex_scan_group() local
1948 mb_find_extent(e4b, i, ac->ac_g_ex.fe_len, &ex); in ext4_mb_complex_scan_group()
1949 BUG_ON(ex.fe_len <= 0); in ext4_mb_complex_scan_group()
1950 if (free < ex.fe_len) { in ext4_mb_complex_scan_group()
1954 free, ex.fe_len); in ext4_mb_complex_scan_group()
1962 ex.fe_logical = 0xDEADC0DE; /* debug value */ in ext4_mb_complex_scan_group()
1963 ext4_mb_measure_extent(ac, &ex, e4b); in ext4_mb_complex_scan_group()
1965 i += ex.fe_len; in ext4_mb_complex_scan_group()
1966 free -= ex.fe_len; in ext4_mb_complex_scan_group()
1983 struct ext4_free_extent ex; in ext4_mb_scan_aligned() local
2000 max = mb_find_extent(e4b, i, sbi->s_stripe, &ex); in ext4_mb_scan_aligned()
2003 ex.fe_logical = 0xDEADF00D; /* debug value */ in ext4_mb_scan_aligned()
2004 ac->ac_b_ex = ex; in ext4_mb_scan_aligned()
5032 struct ext4_free_extent ex; in ext4_trim_extent() local
5039 ex.fe_start = start; in ext4_trim_extent()
5040 ex.fe_group = group; in ext4_trim_extent()
5041 ex.fe_len = count; in ext4_trim_extent()
5047 mb_mark_used(e4b, &ex); in ext4_trim_extent()
5051 mb_free_blocks(NULL, e4b, start, ex.fe_len); in ext4_trim_extent()