Lines Matching refs:maxlen

215  * Attempt to allocate an extent minlen<=len<=maxlen starting from
216 * bitmap block bbno. If we don't get maxlen then use prod to trim
226 xfs_extlen_t maxlen, /* maximum length to allocate */
251 maxlen = min(mp->m_sb.sb_rextents, i + maxlen) - i;
254 * See if there's a free extent of maxlen starting at i.
257 error = xfs_rtcheck_range(mp, tp, i, maxlen, 1, &next, &stat);
263 * i for maxlen is all free, allocate and return that.
265 error = xfs_rtallocate_range(mp, tp, i, maxlen, rbpp,
270 *len = maxlen;
280 if (minlen < maxlen) {
301 * Searched the whole thing & didn't find a maxlen free extent.
303 if (minlen < maxlen && besti != -1) {
335 * Allocate an extent of length minlen<=len<=maxlen, starting at block
336 * bno. If we don't get maxlen then use prod to trim the length, if given.
346 xfs_extlen_t maxlen, /* maximum length to allocate */
358 ASSERT(minlen % prod == 0 && maxlen % prod == 0);
360 * Check if the range in question (for maxlen) is free.
362 error = xfs_rtcheck_range(mp, tp, bno, maxlen, 1, &next, &isfree);
370 error = xfs_rtallocate_range(mp, tp, bno, maxlen, rbpp, rsb);
374 *len = maxlen;
381 maxlen = next - bno;
382 if (maxlen < minlen) {
392 if (prod > 1 && (i = maxlen % prod)) {
393 maxlen -= i;
394 if (maxlen < minlen) {
405 error = xfs_rtallocate_range(mp, tp, bno, maxlen, rbpp, rsb);
409 *len = maxlen;
415 * Allocate an extent of length minlen<=len<=maxlen, starting as near
416 * to bno as possible. If we don't get maxlen then use prod to trim
425 xfs_extlen_t maxlen, /* maximum length to allocate */
441 ASSERT(minlen % prod == 0 && maxlen % prod == 0);
450 maxlen = min(mp->m_sb.sb_rextents, bno + maxlen) - bno;
451 if (maxlen < minlen) {
459 error = xfs_rtallocate_extent_exact(mp, tp, bno, minlen, maxlen, len,
502 bbno + i, minlen, maxlen, len, &n, rbpp,
547 tp, bbno + j, minlen, maxlen,
569 bbno + i, minlen, maxlen, len, &n, rbpp,
618 * Allocate an extent of length minlen<=len<=maxlen, with no position
619 * specified. If we don't get maxlen then use prod to trim
627 xfs_extlen_t maxlen, /* maximum length to allocate */
641 ASSERT(minlen % prod == 0 && maxlen % prod == 0);
642 ASSERT(maxlen != 0);
645 * Loop over all the levels starting with maxlen.
647 * are extents starting there that are long enough (>= maxlen).
651 for (l = xfs_highbit32(maxlen); l < mp->m_rsumlevels; l++) {
672 error = xfs_rtallocate_extent_block(mp, tp, i, maxlen,
673 maxlen, len, &n, rbpp, rsb, prod, &r);
694 * Didn't find any maxlen blocks. Try smaller ones, unless
697 if (minlen > --maxlen) {
702 ASSERT(maxlen != 0);
705 * Loop over sizes, from maxlen down to minlen.
709 for (l = xfs_highbit32(maxlen); l >= xfs_highbit32(minlen); l--) {
730 * minlen/maxlen are in the possible range for
735 XFS_RTMIN(maxlen, (1 << (l + 1)) - 1),
1144 xfs_extlen_t maxlen, /* maximum length to allocate */
1157 ASSERT(minlen > 0 && minlen <= maxlen);
1160 * If prod is set then figure out what to do to minlen and maxlen.
1165 if ((i = maxlen % prod))
1166 maxlen -= i;
1169 if (maxlen < minlen) {
1178 error = xfs_rtallocate_extent_size(mp, tp, minlen, maxlen, len,
1181 error = xfs_rtallocate_extent_near(mp, tp, bno, minlen, maxlen,
1194 ASSERT(*len >= minlen && *len <= maxlen);