/linux-master/virt/kvm/ |
H A D | kvm_main.c | 2402 XA_STATE(xas, &kvm->mem_attr_array, start); 2410 has_attrs = !xas_find(&xas, end - 1); 2417 entry = xas_next(&xas); 2418 } while (xas_retry(&xas, entry)); 2420 if (xas.xa_index != index || xa_to_value(entry) != attrs) {
|
/linux-master/include/linux/ |
H A D | xarray.h | 1358 * We encode errnos in the xas->xa_node. If an error has happened, we need to 1380 * @name: Name of this operation state (usually xas). 1391 * @name: Name of this operation state (usually xas). 1406 #define xas_marked(xas, mark) xa_marked((xas)->xa, (mark)) 1407 #define xas_trylock(xas) xa_trylock((xas)->xa) 1408 #define xas_lock(xas) xa_lock((xas)->xa) 1409 #define xas_unlock(xas) xa_unloc 1425 xas_error(const struct xa_state *xas) argument 1439 xas_set_err(struct xa_state *xas, long err) argument 1450 xas_invalid(const struct xa_state *xas) argument 1461 xas_valid(const struct xa_state *xas) argument 1472 xas_is_node(const struct xa_state *xas) argument 1505 xas_reset(struct xa_state *xas) argument 1522 xas_retry(struct xa_state *xas, const void *entry) argument 1559 xas_split(struct xa_state *xas, void *entry, unsigned int order) argument 1565 xas_split_alloc(struct xa_state *xas, void *entry, unsigned int order, gfp_t gfp) argument 1585 xas_reload(struct xa_state *xas) argument 1614 xas_set(struct xa_state *xas, unsigned long index) argument 1630 xas_advance(struct xa_state *xas, unsigned long index) argument 1644 xas_set_order(struct xa_state *xas, unsigned long index, unsigned int order) argument 1667 xas_set_update(struct xa_state *xas, xa_update_node_t update) argument 1672 xas_set_lru(struct xa_state *xas, struct list_lru *lru) argument 1688 xas_next_entry(struct xa_state *xas, unsigned long max) argument 1713 xas_find_chunk(struct xa_state *xas, bool advance, xa_mark_t mark) argument 1745 xas_next_marked(struct xa_state *xas, unsigned long max, xa_mark_t mark) argument 1844 xas_prev(struct xa_state *xas) argument 1873 xas_next(struct xa_state *xas) argument [all...] |
H A D | pagemap.h | 1385 XA_STATE(xas, &rac->mapping->i_pages, 0); 1393 xas_set(&xas, rac->_index); 1395 xas_for_each(&xas, page, rac->_index + rac->_nr_pages - 1) { 1396 if (xas_retry(&xas, page))
|
/linux-master/mm/ |
H A D | shmem.c | 482 XA_STATE(xas, &mapping->i_pages, index); 487 item = xas_load(&xas); 490 xas_store(&xas, replacement); 765 XA_STATE_ORDER(xas, &mapping->i_pages, index, folio_order(folio)); 781 xas_lock_irq(&xas); 782 if (expected != xas_find_conflict(&xas)) { 783 xas_set_err(&xas, -EEXIST); 786 if (expected && xas_find_conflict(&xas)) { 787 xas_set_err(&xas, -EEXIST); 790 xas_store(&xas, foli [all...] |
H A D | page-writeback.c | 2344 XA_STATE(xas, &mapping->i_pages, start); 2348 xas_lock_irq(&xas); 2349 xas_for_each_marked(&xas, page, end, PAGECACHE_TAG_DIRTY) { 2350 xas_set_mark(&xas, PAGECACHE_TAG_TOWRITE); 2354 xas_pause(&xas); 2355 xas_unlock_irq(&xas); 2357 xas_lock_irq(&xas); 2359 xas_unlock_irq(&xas); 3050 XA_STATE(xas, &mapping->i_pages, folio_index(folio)); 3056 xas_lock_irqsave(&xas, flag [all...] |
H A D | filemap.c | 127 static void mapping_set_update(struct xa_state *xas, argument 132 xas_set_update(xas, workingset_update_node); 133 xas_set_lru(xas, &shadow_nodes); 139 XA_STATE(xas, &mapping->i_pages, folio->index); 142 mapping_set_update(&xas, mapping); 144 xas_set_order(&xas, folio->index, folio_order(folio)); 149 xas_store(&xas, shadow); 150 xas_init_marks(&xas); 289 XA_STATE(xas, &mapping->i_pages, fbatch->folios[0]->index); 294 mapping_set_update(&xas, mappin 1959 find_get_entry(struct xa_state *xas, pgoff_t max, xa_mark_t mark) argument 2932 folio_seek_hole_data(struct xa_state *xas, struct address_space *mapping, struct folio *folio, loff_t start, loff_t end, bool seek_data) argument 2965 seek_folio_size(struct xa_state *xas, struct folio *folio) argument 3436 next_uptodate_folio(struct xa_state *xas, struct address_space *mapping, pgoff_t end_pgoff) argument [all...] |
H A D | madvise.c | 224 XA_STATE(xas, &mapping->i_pages, linear_page_index(vma, start)); 230 xas_for_each(&xas, folio, end_index) { 242 ((xas.xa_index - vma->vm_pgoff) << PAGE_SHIFT); 243 xas_pause(&xas);
|
H A D | huge_memory.c | 3045 XA_STATE_ORDER(xas, &folio->mapping->i_pages, folio->index, new_order); 3128 xas_split_alloc(&xas, folio, folio_order(folio), gfp); 3129 if (xas_error(&xas)) { 3130 ret = xas_error(&xas); 3167 xas_lock(&xas); 3168 xas_reset(&xas); 3169 if (xas_load(&xas) != folio) 3191 xas_split(&xas, folio, folio_order(folio)); 3211 xas_unlock(&xas); 3225 xas_destroy(&xas); [all...] |
H A D | swap_state.c | 93 XA_STATE_ORDER(xas, &address_space->i_pages, idx, folio_order(folio)); 97 xas_set_update(&xas, workingset_update_node); 108 xas_lock_irq(&xas); 109 xas_create_range(&xas); 110 if (xas_error(&xas)) 113 VM_BUG_ON_FOLIO(xas.xa_index != idx + i, folio); 115 old = xas_load(&xas); 119 xas_store(&xas, folio); 120 xas_next(&xas); 126 xas_unlock_irq(&xas); [all...] |
H A D | migrate.c | 406 XA_STATE(xas, &mapping->i_pages, folio_index(folio)); 430 xas_lock_irq(&xas); 432 xas_unlock_irq(&xas); 464 xas_store(&xas, newfolio); 465 xas_next(&xas); 475 xas_unlock(&xas); 533 XA_STATE(xas, &mapping->i_pages, folio_index(src)); 536 xas_lock_irq(&xas); 539 xas_unlock_irq(&xas); 548 xas_store(&xas, ds [all...] |
H A D | memfd.c | 38 static void memfd_tag_pins(struct xa_state *xas) argument 45 xas_lock_irq(xas); 46 xas_for_each(xas, folio, ULONG_MAX) { 48 xas_set_mark(xas, MEMFD_TAG_PINNED); 54 xas_pause(xas); 55 xas_unlock_irq(xas); 57 xas_lock_irq(xas); 59 xas_unlock_irq(xas); 73 XA_STATE(xas, &mapping->i_pages, 0); 77 memfd_tag_pins(&xas); [all...] |
H A D | khugepaged.c | 1806 XA_STATE_ORDER(xas, &mapping->i_pages, start, HPAGE_PMD_ORDER); 1829 xas_lock_irq(&xas); 1830 xas_create_range(&xas); 1831 if (!xas_error(&xas)) 1833 xas_unlock_irq(&xas); 1834 if (!xas_nomem(&xas, GFP_KERNEL)) { 1841 xas_set(&xas, index); 1842 page = xas_load(&xas); 1844 VM_BUG_ON(index != xas.xa_index); 1853 if (!xas_next_entry(&xas, en [all...] |
/linux-master/fs/smb/client/ |
H A D | smb2ops.c | 4313 XA_STATE(xas, buffer, 0); 4316 xas_for_each_marked(&xas, folio, ULONG_MAX, XA_MARK_0) {
|
/linux-master/fs/netfs/ |
H A D | write_collect.c | 83 XA_STATE(xas, &wreq->mapping->i_pages, pos / PAGE_SIZE); 89 xas_reset(&xas); 90 folio = xas_load(&xas); 91 if (xas_retry(&xas, folio)) 96 wreq->debug_id, xas.xa_index, pos / PAGE_SIZE); 99 if (folio == xas_reload(&xas))
|
H A D | misc.c | 19 XA_STATE_ORDER(xas, xa, index, folio_order(folio)); 22 xas_lock(&xas); 24 xas_store(&xas, folio); 25 if (!xas_error(&xas)) 27 xas_unlock(&xas); 28 if (!xas_nomem(&xas, gfp_mask)) 29 return xas_error(&xas); 34 xas_set_mark(&xas, NETFS_BUF_PUT_MARK); 36 xas_set_mark(&xas, NETFS_BUF_PAGECACHE_MARK); 37 xas_unlock(&xas); [all...] |
H A D | fscache_io.c | 182 XA_STATE(xas, &mapping->i_pages, first); 185 xas_for_each(&xas, page, last) {
|
H A D | buffered_read.c | 29 XA_STATE(xas, &rreq->mapping->i_pages, start_page); 51 xas_for_each(&xas, folio, last_page) { 57 if (xas_retry(&xas, folio))
|
/linux-master/fs/ |
H A D | fs-writeback.c | 401 XA_STATE(xas, &mapping->i_pages, 0); 422 xas_for_each_marked(&xas, folio, ULONG_MAX, PAGECACHE_TAG_DIRTY) { 430 xas_set(&xas, 0); 431 xas_for_each_marked(&xas, folio, ULONG_MAX, PAGECACHE_TAG_WRITEBACK) {
|
/linux-master/lib/ |
H A D | xarray.c | 21 * @xas is the 'xarray operation state'. It may be either a pointer to 38 static inline void xas_lock_type(struct xa_state *xas, unsigned int lock_type) argument 41 xas_lock_irq(xas); 43 xas_lock_bh(xas); 45 xas_lock(xas); 48 static inline void xas_unlock_type(struct xa_state *xas, unsigned int lock_type) argument 51 xas_unlock_irq(xas); 53 xas_unlock_bh(xas); 55 xas_unlock(xas); 121 * @xas 126 xas_squash_marks(const struct xa_state *xas) argument 149 xas_set_offset(struct xa_state *xas) argument 155 xas_move_index(struct xa_state *xas, unsigned long offset) argument 162 xas_next_offset(struct xa_state *xas) argument 168 set_bounds(struct xa_state *xas) argument 181 xas_start(struct xa_state *xas) argument 203 xas_descend(struct xa_state *xas, struct xa_node *node) argument 235 xas_load(struct xa_state *xas) argument 268 xas_destroy(struct xa_state *xas) argument 298 xas_nomem(struct xa_state *xas, gfp_t gfp) argument 331 xas_destroy(xas); variable 351 xas_update(struct xa_state *xas, struct xa_node *node) argument 359 xas_alloc(struct xa_state *xas, unsigned int shift) argument 401 xas_size(const struct xa_state *xas) argument 413 xas_max(struct xa_state *xas) argument 437 xas_shrink(struct xa_state *xas) argument 481 xas_delete_node(struct xa_state *xas) argument 523 xas_free_nodes(struct xa_state *xas, struct xa_node *top) argument 559 xas_expand(struct xa_state *xas, void *head) argument 639 xas_create(struct xa_state *xas, bool allow_root) argument 704 xas_create_range(struct xa_state *xas) argument 747 update_node(struct xa_state *xas, struct xa_node *node, int count, int values) argument 775 xas_store(struct xa_state *xas, void *entry) argument 857 xas_get_mark(const struct xa_state *xas, xa_mark_t mark) argument 876 xas_set_mark(const struct xa_state *xas, xa_mark_t mark) argument 905 xas_clear_mark(const struct xa_state *xas, xa_mark_t mark) argument 939 xas_init_marks(const struct xa_state *xas) argument 1017 xas_split_alloc(struct xa_state *xas, void *entry, unsigned int order, gfp_t gfp) argument 1068 xas_split(struct xa_state *xas, void *entry, unsigned int order) argument 1135 xas_pause(struct xa_state *xas) argument 1165 __xas_prev(struct xa_state *xas) argument 1204 __xas_next(struct xa_state *xas) argument 1252 xas_find(struct xa_state *xas, unsigned long max) argument 1321 xas_find_marked(struct xa_state *xas, unsigned long max, xa_mark_t mark) argument 1409 xas_find_conflict(struct xa_state *xas) argument 1486 xas_result(struct xa_state *xas, void *curr) argument 1682 xas_set_range(struct xa_state *xas, unsigned long first, unsigned long last) argument 2053 xas_sibling(struct xa_state *xas) argument 2113 xas_extract_present(struct xa_state *xas, void **dst, unsigned long max, unsigned int n) argument 2132 xas_extract_marked(struct xa_state *xas, void **dst, unsigned long max, unsigned int n, xa_mark_t mark) argument 2202 struct xa_state xas = { local [all...] |
H A D | test_xarray.c | 74 XA_STATE_ORDER(xas, xa, index, order); 78 xas_lock(&xas); 79 curr = xas_store(&xas, entry); 80 xas_unlock(&xas); 81 } while (xas_nomem(&xas, gfp)); 104 XA_STATE(xas, xa, 0); 111 XA_BUG_ON(xa, xas_find(&xas, ULONG_MAX) != xa_mk_value(0)); 113 XA_BUG_ON(xa, !xa_is_retry(xas_reload(&xas))); 114 XA_BUG_ON(xa, xas_retry(&xas, NULL)); 115 XA_BUG_ON(xa, xas_retry(&xas, xa_mk_valu [all...] |
H A D | scatterlist.c | 1281 XA_STATE(xas, xa, index); 1285 xas_for_each(&xas, folio, ULONG_MAX) { 1286 if (xas_retry(&xas, folio))
|
/linux-master/fs/erofs/ |
H A D | fscache.c | 62 XA_STATE(xas, &req->mapping->i_pages, start_page); 65 xas_for_each(&xas, folio, last_page) { 66 if (xas_retry(&xas, folio))
|
/linux-master/fs/afs/ |
H A D | dir.c | 117 XA_STATE(xas, &mapping->i_pages, 0); 123 xas_for_each(&xas, folio, last) { 124 if (xas_retry(&xas, folio)) 192 XA_STATE(xas, &mapping->i_pages, 0); 201 xas_for_each(&xas, folio, last) { 202 if (xas_retry(&xas, folio)) 226 XA_STATE(xas, &mapping->i_pages, 0); 232 xas_for_each(&xas, folio, last) { 233 if (xas_retry(&xas, folio))
|
/linux-master/drivers/infiniband/sw/rxe/ |
H A D | rxe_mr.c | 96 XA_STATE(xas, &mr->page_list, 0); 106 xas_lock(&xas); 112 xas_set_err(&xas, -EINVAL); 116 xas_store(&xas, page); 117 if (xas_error(&xas)) 119 xas_next(&xas); 123 xas_unlock(&xas); 124 } while (xas_nomem(&xas, GFP_KERNEL)); 126 return xas_error(&xas); 161 XA_STATE(xas, [all...] |
/linux-master/drivers/infiniband/core/ |
H A D | device.c | 158 XA_STATE(xas, xa, *indexp); 163 entry = xas_find_marked(&xas, ULONG_MAX, filter); 166 } while (xas_retry(&xas, entry)); 170 *indexp = xas.xa_index;
|