Lines Matching refs:offset
108 __try_to_reclaim_swap(struct swap_info_struct *si, unsigned long offset) in __try_to_reclaim_swap() argument
110 swp_entry_t entry = swp_entry(si->type, offset); in __try_to_reclaim_swap()
182 pgoff_t offset = start_page - se->start_page; in discard_swap_cluster() local
183 sector_t start_block = se->start_block + offset; in discard_swap_cluster()
184 sector_t nr_blocks = se->nr_pages - offset; in discard_swap_cluster()
281 unsigned long offset) in lock_cluster() argument
287 ci += offset / SWAPFILE_CLUSTER; in lock_cluster()
301 unsigned long offset) in lock_cluster_or_swap_info() argument
305 ci = lock_cluster(si, offset); in lock_cluster_or_swap_info()
514 unsigned long offset) in scan_swap_map_ssd_cluster_conflict() argument
519 offset /= SWAPFILE_CLUSTER; in scan_swap_map_ssd_cluster_conflict()
521 offset != cluster_list_first(&si->free_clusters) && in scan_swap_map_ssd_cluster_conflict()
522 cluster_is_free(&si->cluster_info[offset]); in scan_swap_map_ssd_cluster_conflict()
537 unsigned long *offset, unsigned long *scan_base) in scan_swap_map_try_ssd_cluster() argument
557 *scan_base = *offset = si->cluster_next; in scan_swap_map_try_ssd_cluster()
590 *offset = tmp; in scan_swap_map_try_ssd_cluster()
610 static void swap_range_alloc(struct swap_info_struct *si, unsigned long offset, in swap_range_alloc() argument
613 unsigned int end = offset + nr_entries - 1; in swap_range_alloc()
615 if (offset == si->lowest_bit) in swap_range_alloc()
639 static void swap_range_free(struct swap_info_struct *si, unsigned long offset, in swap_range_free() argument
642 unsigned long end = offset + nr_entries - 1; in swap_range_free()
645 if (offset < si->lowest_bit) in swap_range_free()
646 si->lowest_bit = offset; in swap_range_free()
661 while (offset <= end) { in swap_range_free()
662 frontswap_invalidate_page(si->type, offset); in swap_range_free()
664 swap_slot_free_notify(si->bdev, offset); in swap_range_free()
665 offset++; in swap_range_free()
674 unsigned long offset; in scan_swap_map_slots() local
695 scan_base = offset = si->cluster_next; in scan_swap_map_slots()
699 if (scan_swap_map_try_ssd_cluster(si, &offset, &scan_base)) in scan_swap_map_slots()
719 scan_base = offset = si->lowest_bit; in scan_swap_map_slots()
720 last_in_cluster = offset + SWAPFILE_CLUSTER - 1; in scan_swap_map_slots()
723 for (; last_in_cluster <= si->highest_bit; offset++) { in scan_swap_map_slots()
724 if (si->swap_map[offset]) in scan_swap_map_slots()
725 last_in_cluster = offset + SWAPFILE_CLUSTER; in scan_swap_map_slots()
726 else if (offset == last_in_cluster) { in scan_swap_map_slots()
728 offset -= SWAPFILE_CLUSTER - 1; in scan_swap_map_slots()
729 si->cluster_next = offset; in scan_swap_map_slots()
739 offset = scan_base; in scan_swap_map_slots()
746 while (scan_swap_map_ssd_cluster_conflict(si, offset)) { in scan_swap_map_slots()
750 if (!scan_swap_map_try_ssd_cluster(si, &offset, in scan_swap_map_slots()
759 if (offset > si->highest_bit) in scan_swap_map_slots()
760 scan_base = offset = si->lowest_bit; in scan_swap_map_slots()
762 ci = lock_cluster(si, offset); in scan_swap_map_slots()
764 if (vm_swap_full() && si->swap_map[offset] == SWAP_HAS_CACHE) { in scan_swap_map_slots()
768 swap_was_freed = __try_to_reclaim_swap(si, offset); in scan_swap_map_slots()
776 if (si->swap_map[offset]) { in scan_swap_map_slots()
783 si->swap_map[offset] = usage; in scan_swap_map_slots()
784 inc_cluster_info_page(si, si->cluster_info, offset); in scan_swap_map_slots()
787 swap_range_alloc(si, offset, 1); in scan_swap_map_slots()
788 si->cluster_next = offset + 1; in scan_swap_map_slots()
789 slots[n_ret++] = swp_entry(si->type, offset); in scan_swap_map_slots()
792 if ((n_ret == nr) || (offset >= si->highest_bit)) in scan_swap_map_slots()
809 if (scan_swap_map_try_ssd_cluster(si, &offset, &scan_base)) in scan_swap_map_slots()
815 ++offset; in scan_swap_map_slots()
818 if (si->cluster_nr && !si->swap_map[offset]) { in scan_swap_map_slots()
829 while (++offset <= si->highest_bit) { in scan_swap_map_slots()
830 if (!si->swap_map[offset]) { in scan_swap_map_slots()
834 if (vm_swap_full() && si->swap_map[offset] == SWAP_HAS_CACHE) { in scan_swap_map_slots()
843 offset = si->lowest_bit; in scan_swap_map_slots()
844 while (offset < scan_base) { in scan_swap_map_slots()
845 if (!si->swap_map[offset]) { in scan_swap_map_slots()
849 if (vm_swap_full() && si->swap_map[offset] == SWAP_HAS_CACHE) { in scan_swap_map_slots()
857 offset++; in scan_swap_map_slots()
871 unsigned long offset, i; in swap_alloc_cluster() local
878 offset = idx * SWAPFILE_CLUSTER; in swap_alloc_cluster()
879 ci = lock_cluster(si, offset); in swap_alloc_cluster()
883 map = si->swap_map + offset; in swap_alloc_cluster()
887 swap_range_alloc(si, offset, SWAPFILE_CLUSTER); in swap_alloc_cluster()
888 *slot = swp_entry(si->type, offset); in swap_alloc_cluster()
895 unsigned long offset = idx * SWAPFILE_CLUSTER; in swap_free_cluster() local
898 ci = lock_cluster(si, offset); in swap_free_cluster()
902 swap_range_free(si, offset, SWAPFILE_CLUSTER); in swap_free_cluster()
1018 pgoff_t offset; in get_swap_page_of_type() local
1025 offset = scan_swap_map(si, 1); in get_swap_page_of_type()
1026 if (offset) { in get_swap_page_of_type()
1028 return swp_entry(type, offset); in get_swap_page_of_type()
1039 unsigned long offset, type; in __swap_info_get() local
1049 offset = swp_offset(entry); in __swap_info_get()
1050 if (offset >= p->max) in __swap_info_get()
1114 unsigned long offset = swp_offset(entry); in __swap_entry_free() local
1118 ci = lock_cluster_or_swap_info(p, offset); in __swap_entry_free()
1120 count = p->swap_map[offset]; in __swap_entry_free()
1136 if (swap_count_continued(p, offset, count)) in __swap_entry_free()
1145 p->swap_map[offset] = usage ? : SWAP_HAS_CACHE; in __swap_entry_free()
1155 unsigned long offset = swp_offset(entry); in swap_entry_free() local
1158 ci = lock_cluster(p, offset); in swap_entry_free()
1159 count = p->swap_map[offset]; in swap_entry_free()
1161 p->swap_map[offset] = 0; in swap_entry_free()
1162 dec_cluster_info_page(p, p->cluster_info, offset); in swap_entry_free()
1166 swap_range_free(p, offset, 1); in swap_entry_free()
1201 unsigned long offset = swp_offset(entry); in swapcache_free_cluster() local
1202 unsigned long idx = offset / SWAPFILE_CLUSTER; in swapcache_free_cluster()
1213 ci = lock_cluster(si, offset); in swapcache_free_cluster()
1215 map = si->swap_map + offset; in swapcache_free_cluster()
1230 ci = lock_cluster(si, offset); in swapcache_free_cluster()
1248 unsigned long offset = swp_offset(entry); in split_swap_cluster() local
1253 ci = lock_cluster(si, offset); in split_swap_cluster()
1318 unsigned long offset; in page_swapcount() local
1323 offset = swp_offset(entry); in page_swapcount()
1324 ci = lock_cluster_or_swap_info(p, offset); in page_swapcount()
1325 count = swap_count(p->swap_map[offset]); in page_swapcount()
1334 pgoff_t offset = swp_offset(entry); in swap_swapcount() local
1337 ci = lock_cluster_or_swap_info(si, offset); in swap_swapcount()
1338 count = swap_count(si->swap_map[offset]); in swap_swapcount()
1369 pgoff_t offset; in swp_swapcount() local
1376 offset = swp_offset(entry); in swp_swapcount()
1378 ci = lock_cluster_or_swap_info(p, offset); in swp_swapcount()
1380 count = swap_count(p->swap_map[offset]); in swp_swapcount()
1387 page = vmalloc_to_page(p->swap_map + offset); in swp_swapcount()
1388 offset &= ~PAGE_MASK; in swp_swapcount()
1394 tmp_count = map[offset]; in swp_swapcount()
1412 unsigned long offset = round_down(roffset, SWAPFILE_CLUSTER); in swap_page_trans_huge_swapped() local
1416 ci = lock_cluster_or_swap_info(si, offset); in swap_page_trans_huge_swapped()
1423 if (map[offset + i] != SWAP_HAS_CACHE) { in swap_page_trans_huge_swapped()
1453 unsigned long offset = 0; in page_trans_huge_map_swapcount() local
1483 offset = swp_offset(entry); in page_trans_huge_map_swapcount()
1487 ci = lock_cluster(si, offset); in page_trans_huge_map_swapcount()
1492 swapcount = swap_count(map[offset + i]); in page_trans_huge_map_swapcount()
1672 int swap_type_of(dev_t device, sector_t offset, struct block_device **bdev_p) in swap_type_of() argument
1697 if (se->start_block == offset) { in swap_type_of()
1718 sector_t swapdev_block(int type, pgoff_t offset) in swapdev_block() argument
1726 return map_swap_entry(swp_entry(type, offset), &bdev); in swapdev_block()
2280 pgoff_t offset; in map_swap_entry() local
2285 offset = swp_offset(entry); in map_swap_entry()
2290 if (se->start_page <= offset && in map_swap_entry()
2291 offset < (se->start_page + se->nr_pages)) { in map_swap_entry()
2292 return se->start_block + (offset - se->start_page); in map_swap_entry()
3369 unsigned long offset, type; in __swap_duplicate() local
3381 offset = swp_offset(entry); in __swap_duplicate()
3382 if (unlikely(offset >= p->max)) in __swap_duplicate()
3385 ci = lock_cluster_or_swap_info(p, offset); in __swap_duplicate()
3387 count = p->swap_map[offset]; in __swap_duplicate()
3418 else if (swap_count_continued(p, offset, count)) in __swap_duplicate()
3425 p->swap_map[offset] = count | has_cache; in __swap_duplicate()
3521 pgoff_t offset; in add_swap_count_continuation() local
3540 offset = swp_offset(entry); in add_swap_count_continuation()
3542 ci = lock_cluster(si, offset); in add_swap_count_continuation()
3544 count = si->swap_map[offset] & ~SWAP_HAS_CACHE; in add_swap_count_continuation()
3566 head = vmalloc_to_page(si->swap_map + offset); in add_swap_count_continuation()
3567 offset &= ~PAGE_MASK; in add_swap_count_continuation()
3591 map = kmap_atomic(list_page) + offset; in add_swap_count_continuation()
3626 pgoff_t offset, unsigned char count) in swap_count_continued() argument
3633 head = vmalloc_to_page(si->swap_map + offset); in swap_count_continued()
3640 offset &= ~PAGE_MASK; in swap_count_continued()
3642 map = kmap_atomic(page) + offset; in swap_count_continued()
3655 map = kmap_atomic(page) + offset; in swap_count_continued()
3664 map = kmap_atomic(page) + offset; in swap_count_continued()
3671 map = kmap_atomic(page) + offset; in swap_count_continued()
3687 map = kmap_atomic(page) + offset; in swap_count_continued()
3696 map = kmap_atomic(page) + offset; in swap_count_continued()
3715 pgoff_t offset; in free_swap_count_continuations() local
3717 for (offset = 0; offset < si->max; offset += PAGE_SIZE) { in free_swap_count_continuations()
3719 head = vmalloc_to_page(si->swap_map + offset); in free_swap_count_continuations()