Lines Matching refs:range

306 	struct dm_integrity_range range;
326 struct dm_integrity_range range;
1224 struct dm_integrity_range *range;
1226 list_for_each_entry(range, &ic->wait_list, wait_entry) {
1227 if (unlikely(ranges_overlap(range, new_range)))
1235 struct dm_integrity_range *range = container_of(*n, struct dm_integrity_range, node);
1238 if (new_range->logical_sector + new_range->n_sectors <= range->logical_sector)
1239 n = &range->node.rb_left;
1240 else if (new_range->logical_sector >= range->logical_sector + range->n_sectors)
1241 n = &range->node.rb_right;
1252 static void remove_range_unlocked(struct dm_integrity_c *ic, struct dm_integrity_range *range)
1254 rb_erase(&range->node, &ic->in_progress);
1272 static void remove_range(struct dm_integrity_c *ic, struct dm_integrity_range *range)
1277 remove_range_unlocked(ic, range);
1618 remove_range(ic, &dio->range);
1626 if (likely(!bio->bi_status) && unlikely(bio_sectors(bio) != dio->range.n_sectors)) {
1627 dio->range.logical_sector += dio->range.n_sectors;
1628 bio_advance(bio, dio->range.n_sectors << SECTOR_SHIFT);
1713 get_area_and_offset(ic, dio->range.logical_sector, &area, &offset);
1717 logical_sector = dio->range.logical_sector;
1741 alignment = dio->range.logical_sector | bio_sectors(bio) | (PAGE_SIZE >> SECTOR_SHIFT);
1845 sector = dio->range.logical_sector;
1846 sectors_to_process = dio->range.n_sectors;
1896 unsigned int data_to_process = dio->range.n_sectors;
1958 dio->range.logical_sector = dm_target_offset(ti, bio->bi_iter.bi_sector);
1967 if (unlikely(dio->range.logical_sector + bio_sectors(bio) > ic->provided_data_sectors)) {
1969 dio->range.logical_sector, bio_sectors(bio),
1973 if (unlikely((dio->range.logical_sector | bio_sectors(bio)) & (unsigned int)(ic->sectors_per_block - 1))) {
1976 dio->range.logical_sector, bio_sectors(bio));
2018 get_area_and_offset(ic, dio->range.logical_sector, &area, &offset);
2033 logical_sector = dio->range.logical_sector;
2034 n_sectors = dio->range.n_sectors;
2166 remove_range(ic, &dio->range);
2171 dio->range.logical_sector = logical_sector;
2172 get_area_and_offset(ic, dio->range.logical_sector, &area, &offset);
2207 dio->range.n_sectors = bio_sectors(bio);
2214 dio->range.n_sectors = min(dio->range.n_sectors,
2216 if (unlikely(!dio->range.n_sectors)) {
2222 range_sectors = dio->range.n_sectors >> ic->sb->log2_sectors_per_block;
2240 add_journal_node(ic, &ic->journal_tree[pos], dio->range.logical_sector + i);
2254 } while ((i += ic->sectors_per_block) < dio->range.n_sectors);
2261 journal_read_pos = find_journal_node(ic, dio->range.logical_sector, &next_sector);
2263 if (unlikely(dio->range.n_sectors > next_sector - dio->range.logical_sector))
2264 dio->range.n_sectors = next_sector - dio->range.logical_sector;
2269 for (i = ic->sectors_per_block; i < dio->range.n_sectors; i += ic->sectors_per_block, jp++) {
2270 if (!test_journal_node(ic, jp, dio->range.logical_sector + i))
2273 dio->range.n_sectors = i;
2277 if (unlikely(!add_new_range(ic, &dio->range, true))) {
2291 dio->range.n_sectors = ic->sectors_per_block;
2292 wait_and_add_new_range(ic, &dio->range);
2302 new_pos = find_journal_node(ic, dio->range.logical_sector, &next_sector);
2304 remove_range_unlocked(ic, &dio->range);
2313 new_pos = find_journal_node(ic, dio->range.logical_sector, &next_sector);
2315 unlikely(next_sector < dio->range.logical_sector - dio->range.n_sectors)) {
2316 remove_range_unlocked(ic, &dio->range);
2335 if (!block_bitmap_op(ic, ic->may_write_bitmap, dio->range.logical_sector,
2336 dio->range.n_sectors, BITMAP_OP_TEST_ALL_SET)) {
2339 bbs = sector_to_bitmap_block(ic, dio->range.logical_sector);
2361 bio->bi_iter.bi_size = dio->range.n_sectors << SECTOR_SHIFT;
2380 dio->range.logical_sector + dio->range.n_sectors > le64_to_cpu(ic->sb->recalc_sector))
2383 if (!block_bitmap_op(ic, ic->recalc_bitmap, dio->range.logical_sector,
2384 dio->range.n_sectors, BITMAP_OP_TEST_ALL_CLEAR))
2512 remove_range(ic, &io->range);
2592 io->range.logical_sector = sec;
2593 io->range.n_sectors = (k - j) << ic->sb->log2_sectors_per_block;
2596 add_new_range_and_wait(ic, &io->range);
2619 remove_range_unlocked(ic, &io->range);
2725 struct dm_integrity_range range;
2767 range.logical_sector = le64_to_cpu(ic->sb->recalc_sector);
2768 if (unlikely(range.logical_sector >= ic->provided_data_sectors)) {
2777 get_area_and_offset(ic, range.logical_sector, &area, &offset);
2778 range.n_sectors = min((sector_t)recalc_sectors, ic->provided_data_sectors - range.logical_sector);
2780 range.n_sectors = min(range.n_sectors, ((sector_t)1U << ic->sb->log2_interleave_sectors) - (unsigned int)offset);
2782 add_new_range_and_wait(ic, &range);
2784 logical_sector = range.logical_sector;
2785 n_sectors = range.n_sectors;
2850 start = (range.logical_sector >>
2853 end = ((range.logical_sector + range.n_sectors) >>
2863 remove_range_unlocked(ic, &range);
2864 ic->sb->recalc_sector = cpu_to_le64(range.logical_sector + range.n_sectors);
2868 remove_range(ic, &range);
2901 if (block_bitmap_op(ic, ic->may_write_bitmap, dio->range.logical_sector,
2902 dio->range.n_sectors, BITMAP_OP_TEST_ALL_SET)) {
2903 remove_range(ic, &dio->range);
2907 block_bitmap_op(ic, ic->journal, dio->range.logical_sector,
2908 dio->range.n_sectors, BITMAP_OP_SET);
2923 block_bitmap_op(ic, ic->may_write_bitmap, dio->range.logical_sector,
2924 dio->range.n_sectors, BITMAP_OP_SET);
2926 remove_range(ic, &dio->range);
2937 struct dm_integrity_range range;
2943 range.logical_sector = 0;
2944 range.n_sectors = ic->provided_data_sectors;
2947 add_new_range_and_wait(ic, &range);
2966 remove_range_unlocked(ic, &range);