Lines Matching defs:len
178 struct folio *folio, u64 start, u32 len)
183 IS_ALIGNED(len, fs_info->sectorsize));
189 ASSERT(folio_pos(folio) <= start && start + len <= folio_end(folio),
190 "start=%llu len=%u folio_pos=%llu folio_size=%zu",
191 start, len, folio_pos(folio), folio_size(folio));
194 #define subpage_calc_start_bit(fs_info, folio, name, start, len) \
200 btrfs_subpage_assert(fs_info, folio, start, len); \
206 static void btrfs_subpage_clamp_range(struct folio *folio, u64 *start, u32 *len)
209 u32 orig_len = *len;
214 * beyond the target range. In that case, just set @len to 0, subpage
215 * helpers can handle @len == 0 without any problem.
218 *len = 0;
220 *len = min_t(u64, folio_end(folio), orig_start + orig_len) - *start;
224 struct folio *folio, u64 start, u32 len)
227 const int start_bit = subpage_calc_start_bit(fs_info, folio, locked, start, len);
228 const int nbits = (len >> fs_info->sectorsize_bits);
234 btrfs_subpage_assert(fs_info, folio, start, len);
276 struct folio *folio, u64 start, u32 len)
300 btrfs_subpage_clamp_range(folio, &start, &len);
301 if (btrfs_subpage_end_and_test_lock(fs_info, folio, start, len))
362 struct folio *folio, u64 start, u32 len)
366 uptodate, start, len);
370 bitmap_set(bfs->bitmaps, start_bit, len >> fs_info->sectorsize_bits);
377 struct folio *folio, u64 start, u32 len)
381 uptodate, start, len);
385 bitmap_clear(bfs->bitmaps, start_bit, len >> fs_info->sectorsize_bits);
391 struct folio *folio, u64 start, u32 len)
395 dirty, start, len);
399 bitmap_set(bfs->bitmaps, start_bit, len >> fs_info->sectorsize_bits);
415 struct folio *folio, u64 start, u32 len)
419 dirty, start, len);
424 bitmap_clear(bfs->bitmaps, start_bit, len >> fs_info->sectorsize_bits);
432 struct folio *folio, u64 start, u32 len)
436 last = btrfs_subpage_clear_and_test_dirty(fs_info, folio, start, len);
442 struct folio *folio, u64 start, u32 len)
446 writeback, start, len);
450 bitmap_set(bfs->bitmaps, start_bit, len >> fs_info->sectorsize_bits);
457 struct folio *folio, u64 start, u32 len)
461 writeback, start, len);
465 bitmap_clear(bfs->bitmaps, start_bit, len >> fs_info->sectorsize_bits);
474 struct folio *folio, u64 start, u32 len)
478 ordered, start, len);
482 bitmap_set(bfs->bitmaps, start_bit, len >> fs_info->sectorsize_bits);
488 struct folio *folio, u64 start, u32 len)
492 ordered, start, len);
496 bitmap_clear(bfs->bitmaps, start_bit, len >> fs_info->sectorsize_bits);
503 struct folio *folio, u64 start, u32 len)
507 checked, start, len);
511 bitmap_set(bfs->bitmaps, start_bit, len >> fs_info->sectorsize_bits);
518 struct folio *folio, u64 start, u32 len)
522 checked, start, len);
526 bitmap_clear(bfs->bitmaps, start_bit, len >> fs_info->sectorsize_bits);
537 struct folio *folio, u64 start, u32 len) \
541 name, start, len); \
547 len >> fs_info->sectorsize_bits); \
565 struct folio *folio, u64 start, u32 len) \
572 btrfs_subpage_set_##name(fs_info, folio, start, len); \
575 struct folio *folio, u64 start, u32 len) \
582 btrfs_subpage_clear_##name(fs_info, folio, start, len); \
585 struct folio *folio, u64 start, u32 len) \
590 return btrfs_subpage_test_##name(fs_info, folio, start, len); \
593 struct folio *folio, u64 start, u32 len) \
600 btrfs_subpage_clamp_range(folio, &start, &len); \
601 btrfs_subpage_set_##name(fs_info, folio, start, len); \
604 struct folio *folio, u64 start, u32 len) \
611 btrfs_subpage_clamp_range(folio, &start, &len); \
612 btrfs_subpage_clear_##name(fs_info, folio, start, len); \
615 struct folio *folio, u64 start, u32 len) \
620 btrfs_subpage_clamp_range(folio, &start, &len); \
621 return btrfs_subpage_test_##name(fs_info, folio, start, len); \
629 btrfs_subpage_set_##name(eb->fs_info, folio, eb->start, eb->len); \
637 btrfs_subpage_clear_##name(eb->fs_info, folio, eb->start, eb->len); \
643 return btrfs_subpage_test_##name(eb->fs_info, folio, eb->start, eb->len); \
668 #define SUBPAGE_DUMP_BITMAP(fs_info, folio, name, start, len) \
676 "dumpping bitmap start=%llu len=%u folio=%llu " #name "_bitmap=%*pbl", \
677 start, len, folio_pos(folio), \
686 struct folio *folio, u64 start, u32 len)
701 start_bit = subpage_calc_start_bit(fs_info, folio, dirty, start, len);
702 nbits = len >> fs_info->sectorsize_bits;
707 SUBPAGE_DUMP_BITMAP(fs_info, folio, dirty, start, len);
722 struct folio *folio, u64 start, u32 len)
735 start_bit = subpage_calc_start_bit(fs_info, folio, locked, start, len);
736 nbits = len >> fs_info->sectorsize_bits;
740 SUBPAGE_DUMP_BITMAP(fs_info, folio, locked, start, len);
763 last = btrfs_subpage_clear_and_test_dirty(eb->fs_info, folio, eb->start, eb->len);
772 struct folio *folio, u64 start, u32 len)
799 "start=%llu len=%u page=%llu, bitmaps uptodate=%*pbl dirty=%*pbl locked=%*pbl writeback=%*pbl ordered=%*pbl checked=%*pbl",
800 start, len, folio_pos(folio),