• Home
  • Raw
  • Download

Lines Matching +full:non +full:- +full:overlapping

1 // SPDX-License-Identifier: GPL-2.0
7 #include "btrfs-tests.h"
9 #include "../disk-io.h"
10 #include "../free-space-cache.h"
11 #include "../block-group.h"
41 return -1; in test_extents()
71 return -1; in test_extents()
76 return -1; in test_extents()
81 return -1; in test_extents()
85 __btrfs_remove_free_space_cache(cache->free_space_ctl); in test_extents()
111 return -1; in test_bitmaps()
133 ret = test_add_free_space_entry(cache, next_bitmap_offset - SZ_2M, in test_bitmaps()
141 ret = btrfs_remove_free_space(cache, next_bitmap_offset - SZ_1M, SZ_2M); in test_bitmaps()
143 test_err("couldn't remove overlapping space %d", ret); in test_bitmaps()
147 if (test_check_exists(cache, next_bitmap_offset - SZ_1M, SZ_2M)) { in test_bitmaps()
148 test_err("left some space when removing overlapping"); in test_bitmaps()
149 return -1; in test_bitmaps()
152 __btrfs_remove_free_space_cache(cache->free_space_ctl); in test_bitmaps()
191 return -1; in test_bitmaps_and_extents()
197 test_err("couldn't re-add extent entry %d", ret); in test_bitmaps_and_extents()
209 return -1; in test_bitmaps_and_extents()
214 * removing an overlapping chunk. in test_bitmaps_and_extents()
224 test_err("couldn't remove overlapping space %d", ret); in test_bitmaps_and_extents()
229 test_err("left over pieces after removing overlapping"); in test_bitmaps_and_extents()
230 return -1; in test_bitmaps_and_extents()
233 __btrfs_remove_free_space_cache(cache->free_space_ctl); in test_bitmaps_and_extents()
250 test_err("problem removing overlapping space %d", ret); in test_bitmaps_and_extents()
256 return -1; in test_bitmaps_and_extents()
269 __btrfs_remove_free_space_cache(cache->free_space_ctl); in test_bitmaps_and_extents()
276 ret = test_add_free_space_entry(cache, bitmap_offset - SZ_1M, in test_bitmaps_and_extents()
291 return -1; in test_bitmaps_and_extents()
294 __btrfs_remove_free_space_cache(cache->free_space_ctl); in test_bitmaps_and_extents()
299 * to return -EAGAIN back from btrfs_remove_extent, make sure this in test_bitmaps_and_extents()
316 test_err("error removing bitmap and extent overlapping %d", ret); in test_bitmaps_and_extents()
320 __btrfs_remove_free_space_cache(cache->free_space_ctl); in test_bitmaps_and_extents()
328 return ctl->free_extents > 0; in test_use_bitmap()
337 if (cache->free_space_ctl->free_extents != num_extents) { in check_num_extents_and_bitmaps()
340 cache->free_space_ctl->free_extents, num_extents); in check_num_extents_and_bitmaps()
341 return -EINVAL; in check_num_extents_and_bitmaps()
343 if (cache->free_space_ctl->total_bitmaps != num_bitmaps) { in check_num_extents_and_bitmaps()
346 cache->free_space_ctl->total_bitmaps, num_bitmaps); in check_num_extents_and_bitmaps()
347 return -EINVAL; in check_num_extents_and_bitmaps()
362 if (cache->free_space_ctl->free_space != 0) { in check_cache_empty()
364 return -EINVAL; in check_cache_empty()
373 return -EINVAL; in check_cache_empty()
391 * from extent entries, both for clustered and non-clustered allocation
402 .recalc_thresholds = cache->free_space_ctl->op->recalc_thresholds, in test_steal_space_from_bitmap_to_extent()
416 * with existing extent entries - the space ends up being marked in test_steal_space_from_bitmap_to_extent()
420 * cache->free_space_ctl->extents_thresh, which currently is in test_steal_space_from_bitmap_to_extent()
427 orig_free_space_ops = cache->free_space_ctl->op; in test_steal_space_from_bitmap_to_extent()
428 cache->free_space_ctl->op = &test_free_space_ops; in test_steal_space_from_bitmap_to_extent()
431 * Extent entry covering free space range [128Mb - 256Kb, 128Mb - 128Kb[ in test_steal_space_from_bitmap_to_extent()
433 ret = test_add_free_space_entry(cache, SZ_128M - SZ_256K, SZ_128K, 0); in test_steal_space_from_bitmap_to_extent()
441 SZ_128M - SZ_512K, 1); in test_steal_space_from_bitmap_to_extent()
455 * [128Mb - 256Kb, 128Mb - 128Kb[ in test_steal_space_from_bitmap_to_extent()
460 SZ_128M - 768 * SZ_1K); in test_steal_space_from_bitmap_to_extent()
467 if (!test_check_exists(cache, SZ_128M - SZ_256K, SZ_128K)) { in test_steal_space_from_bitmap_to_extent()
469 return -ENOENT; in test_steal_space_from_bitmap_to_extent()
473 return -ENOENT; in test_steal_space_from_bitmap_to_extent()
481 SZ_128M - 768 * SZ_1K)) { in test_steal_space_from_bitmap_to_extent()
483 return -EINVAL; in test_steal_space_from_bitmap_to_extent()
492 return -EINVAL; in test_steal_space_from_bitmap_to_extent()
501 return -EINVAL; in test_steal_space_from_bitmap_to_extent()
517 return -ENOENT; in test_steal_space_from_bitmap_to_extent()
549 * Now mark the region [128Mb - 128Kb, 128Mb[ as free too. This will in test_steal_space_from_bitmap_to_extent()
551 * the free space [128Mb - 256Kb, 128Mb - 128Kb[. in test_steal_space_from_bitmap_to_extent()
553 ret = btrfs_add_free_space(cache, SZ_128M - SZ_128K, SZ_128K); in test_steal_space_from_bitmap_to_extent()
559 if (!test_check_exists(cache, SZ_128M - SZ_128K, SZ_128K)) { in test_steal_space_from_bitmap_to_extent()
561 return -ENOENT; in test_steal_space_from_bitmap_to_extent()
573 * So now we have the range [128Mb - 256Kb, 128Mb + 768Kb[ as free in test_steal_space_from_bitmap_to_extent()
578 * extent entry covering range: [128Mb - 256Kb, 128Mb[ in test_steal_space_from_bitmap_to_extent()
587 if (!test_check_exists(cache, SZ_128M - SZ_256K, SZ_1M)) { in test_steal_space_from_bitmap_to_extent()
589 return -ENOENT; in test_steal_space_from_bitmap_to_extent()
592 if (cache->free_space_ctl->free_space != (SZ_1M + sectorsize)) { in test_steal_space_from_bitmap_to_extent()
594 return -EINVAL; in test_steal_space_from_bitmap_to_extent()
600 if (offset != (SZ_128M - SZ_256K)) { in test_steal_space_from_bitmap_to_extent()
604 return -EINVAL; in test_steal_space_from_bitmap_to_extent()
615 if (cache->free_space_ctl->free_space != sectorsize) { in test_steal_space_from_bitmap_to_extent()
617 return -EINVAL; in test_steal_space_from_bitmap_to_extent()
626 return -EINVAL; in test_steal_space_from_bitmap_to_extent()
633 __btrfs_remove_free_space_cache(cache->free_space_ctl); in test_steal_space_from_bitmap_to_extent()
650 /* Bitmap entry covering free space range [0, 128Mb - 512Kb[ */ in test_steal_space_from_bitmap_to_extent()
651 ret = test_add_free_space_entry(cache, 0, SZ_128M - SZ_512K, 1); in test_steal_space_from_bitmap_to_extent()
666 * [128Mb - 768Kb, 128Mb - 512Kb[ in test_steal_space_from_bitmap_to_extent()
668 ret = btrfs_remove_free_space(cache, 0, SZ_128M - 768 * SZ_1K); in test_steal_space_from_bitmap_to_extent()
677 return -ENOENT; in test_steal_space_from_bitmap_to_extent()
679 if (!test_check_exists(cache, SZ_128M - 768 * SZ_1K, SZ_256K)) { in test_steal_space_from_bitmap_to_extent()
681 return -ENOENT; in test_steal_space_from_bitmap_to_extent()
685 * Confirm that the bitmap range [0, 128Mb - 768Kb[ isn't marked in test_steal_space_from_bitmap_to_extent()
688 if (test_check_exists(cache, 0, SZ_128M - 768 * SZ_1K)) { in test_steal_space_from_bitmap_to_extent()
690 return -EINVAL; in test_steal_space_from_bitmap_to_extent()
694 * Confirm that the region [128Mb - 512Kb, 128Mb[, which is in test_steal_space_from_bitmap_to_extent()
697 if (test_check_exists(cache, SZ_128M - SZ_512K, SZ_512K)) { in test_steal_space_from_bitmap_to_extent()
699 return -EINVAL; in test_steal_space_from_bitmap_to_extent()
703 * Now lets mark the region [128Mb - 512Kb, 128Mb[ as free too. But, in test_steal_space_from_bitmap_to_extent()
707 ret = btrfs_add_free_space(cache, SZ_128M - SZ_512K, SZ_512K); in test_steal_space_from_bitmap_to_extent()
713 if (!test_check_exists(cache, SZ_128M - SZ_512K, SZ_512K)) { in test_steal_space_from_bitmap_to_extent()
715 return -ENOENT; in test_steal_space_from_bitmap_to_extent()
751 return -ENOENT; in test_steal_space_from_bitmap_to_extent()
763 * So now we have the range [128Mb - 768Kb, 128Mb + 256Kb[ as free in test_steal_space_from_bitmap_to_extent()
769 * bitmap entry covering range: [128Mb - 768Kb, 128Mb[ in test_steal_space_from_bitmap_to_extent()
777 if (!test_check_exists(cache, SZ_128M - 768 * SZ_1K, SZ_1M)) { in test_steal_space_from_bitmap_to_extent()
779 return -ENOENT; in test_steal_space_from_bitmap_to_extent()
782 if (cache->free_space_ctl->free_space != (SZ_1M + 2 * sectorsize)) { in test_steal_space_from_bitmap_to_extent()
784 return -EINVAL; in test_steal_space_from_bitmap_to_extent()
789 if (offset != (SZ_128M - 768 * SZ_1K)) { in test_steal_space_from_bitmap_to_extent()
793 return -EINVAL; in test_steal_space_from_bitmap_to_extent()
804 if (cache->free_space_ctl->free_space != 2 * sectorsize) { in test_steal_space_from_bitmap_to_extent()
806 return -EINVAL; in test_steal_space_from_bitmap_to_extent()
815 return -EINVAL; in test_steal_space_from_bitmap_to_extent()
822 cache->free_space_ctl->op = orig_free_space_ops; in test_steal_space_from_bitmap_to_extent()
823 __btrfs_remove_free_space_cache(cache->free_space_ctl); in test_steal_space_from_bitmap_to_extent()
833 int ret = -ENOMEM; in btrfs_test_free_space_cache()
839 return -ENOMEM; in btrfs_test_free_space_cache()
862 root->fs_info->extent_root = root; in btrfs_test_free_space_cache()