xas               160 drivers/infiniband/core/device.c 	XA_STATE(xas, xa, *indexp);
xas               165 drivers/infiniband/core/device.c 		entry = xas_find_marked(&xas, ULONG_MAX, filter);
xas               168 drivers/infiniband/core/device.c 	} while (xas_retry(&xas, entry));
xas               172 drivers/infiniband/core/device.c 		*indexp = xas.xa_index;
xas               115 drivers/infiniband/core/restrack.c 	XA_STATE(xas, &rt->xa, 0);
xas               119 drivers/infiniband/core/restrack.c 	xas_for_each(&xas, e, U32_MAX) {
xas               147 fs/dax.c       static wait_queue_head_t *dax_entry_waitqueue(struct xa_state *xas,
xas               151 fs/dax.c       	unsigned long index = xas->xa_index;
xas               160 fs/dax.c       	key->xa = xas->xa;
xas               163 fs/dax.c       	hash = hash_long((unsigned long)xas->xa ^ index, DAX_WAIT_TABLE_BITS);
xas               185 fs/dax.c       static void dax_wake_entry(struct xa_state *xas, void *entry, bool wake_all)
xas               190 fs/dax.c       	wq = dax_entry_waitqueue(xas, entry, &key);
xas               212 fs/dax.c       static void *get_unlocked_entry(struct xa_state *xas, unsigned int order)
xas               222 fs/dax.c       		entry = xas_find_conflict(xas);
xas               230 fs/dax.c       		wq = dax_entry_waitqueue(xas, entry, &ewait.key);
xas               233 fs/dax.c       		xas_unlock_irq(xas);
xas               234 fs/dax.c       		xas_reset(xas);
xas               237 fs/dax.c       		xas_lock_irq(xas);
xas               246 fs/dax.c       static void wait_entry_unlocked(struct xa_state *xas, void *entry)
xas               254 fs/dax.c       	wq = dax_entry_waitqueue(xas, entry, &ewait.key);
xas               262 fs/dax.c       	xas_unlock_irq(xas);
xas               267 fs/dax.c       static void put_unlocked_entry(struct xa_state *xas, void *entry)
xas               271 fs/dax.c       		dax_wake_entry(xas, entry, false);
xas               279 fs/dax.c       static void dax_unlock_entry(struct xa_state *xas, void *entry)
xas               284 fs/dax.c       	xas_reset(xas);
xas               285 fs/dax.c       	xas_lock_irq(xas);
xas               286 fs/dax.c       	old = xas_store(xas, entry);
xas               287 fs/dax.c       	xas_unlock_irq(xas);
xas               289 fs/dax.c       	dax_wake_entry(xas, entry, false);
xas               295 fs/dax.c       static void *dax_lock_entry(struct xa_state *xas, void *entry)
xas               298 fs/dax.c       	return xas_store(xas, xa_mk_value(v | DAX_LOCKED));
xas               391 fs/dax.c       	XA_STATE(xas, NULL, 0);
xas               414 fs/dax.c       		xas.xa = &mapping->i_pages;
xas               415 fs/dax.c       		xas_lock_irq(&xas);
xas               417 fs/dax.c       			xas_unlock_irq(&xas);
xas               420 fs/dax.c       		xas_set(&xas, page->index);
xas               421 fs/dax.c       		entry = xas_load(&xas);
xas               424 fs/dax.c       			wait_entry_unlocked(&xas, entry);
xas               428 fs/dax.c       		dax_lock_entry(&xas, entry);
xas               429 fs/dax.c       		xas_unlock_irq(&xas);
xas               439 fs/dax.c       	XA_STATE(xas, &mapping->i_pages, page->index);
xas               444 fs/dax.c       	dax_unlock_entry(&xas, (void *)cookie);
xas               476 fs/dax.c       static void *grab_mapping_entry(struct xa_state *xas,
xas               479 fs/dax.c       	unsigned long index = xas->xa_index;
xas               484 fs/dax.c       	xas_lock_irq(xas);
xas               485 fs/dax.c       	entry = get_unlocked_entry(xas, order);
xas               491 fs/dax.c       			xas_set_err(xas, EIO);
xas               509 fs/dax.c       		dax_lock_entry(xas, entry);
xas               517 fs/dax.c       			xas_unlock_irq(xas);
xas               519 fs/dax.c       					xas->xa_index & ~PG_PMD_COLOUR,
xas               521 fs/dax.c       			xas_reset(xas);
xas               522 fs/dax.c       			xas_lock_irq(xas);
xas               526 fs/dax.c       		xas_store(xas, NULL);	/* undo the PMD join */
xas               527 fs/dax.c       		dax_wake_entry(xas, entry, true);
xas               530 fs/dax.c       		xas_set(xas, index);
xas               534 fs/dax.c       		dax_lock_entry(xas, entry);
xas               541 fs/dax.c       		dax_lock_entry(xas, entry);
xas               542 fs/dax.c       		if (xas_error(xas))
xas               548 fs/dax.c       	xas_unlock_irq(xas);
xas               549 fs/dax.c       	if (xas_nomem(xas, mapping_gfp_mask(mapping) & ~__GFP_HIGHMEM))
xas               551 fs/dax.c       	if (xas->xa_node == XA_ERROR(-ENOMEM))
xas               553 fs/dax.c       	if (xas_error(xas))
xas               557 fs/dax.c       	xas_unlock_irq(xas);
xas               578 fs/dax.c       	XA_STATE(xas, &mapping->i_pages, 0);
xas               606 fs/dax.c       	xas_lock_irq(&xas);
xas               607 fs/dax.c       	xas_for_each(&xas, entry, ULONG_MAX) {
xas               611 fs/dax.c       			entry = get_unlocked_entry(&xas, 0);
xas               614 fs/dax.c       		put_unlocked_entry(&xas, entry);
xas               620 fs/dax.c       		xas_pause(&xas);
xas               621 fs/dax.c       		xas_unlock_irq(&xas);
xas               623 fs/dax.c       		xas_lock_irq(&xas);
xas               625 fs/dax.c       	xas_unlock_irq(&xas);
xas               633 fs/dax.c       	XA_STATE(xas, &mapping->i_pages, index);
xas               637 fs/dax.c       	xas_lock_irq(&xas);
xas               638 fs/dax.c       	entry = get_unlocked_entry(&xas, 0);
xas               642 fs/dax.c       	    (xas_get_mark(&xas, PAGECACHE_TAG_DIRTY) ||
xas               643 fs/dax.c       	     xas_get_mark(&xas, PAGECACHE_TAG_TOWRITE)))
xas               646 fs/dax.c       	xas_store(&xas, NULL);
xas               650 fs/dax.c       	put_unlocked_entry(&xas, entry);
xas               651 fs/dax.c       	xas_unlock_irq(&xas);
xas               716 fs/dax.c       static void *dax_insert_entry(struct xa_state *xas,
xas               726 fs/dax.c       		unsigned long index = xas->xa_index;
xas               735 fs/dax.c       	xas_reset(xas);
xas               736 fs/dax.c       	xas_lock_irq(xas);
xas               750 fs/dax.c       		old = dax_lock_entry(xas, new_entry);
xas               755 fs/dax.c       		xas_load(xas);	/* Walk the xa_state */
xas               759 fs/dax.c       		xas_set_mark(xas, PAGECACHE_TAG_DIRTY);
xas               761 fs/dax.c       	xas_unlock_irq(xas);
xas               849 fs/dax.c       static int dax_writeback_one(struct xa_state *xas, struct dax_device *dax_dev,
xas               865 fs/dax.c       		entry = get_unlocked_entry(xas, 0);
xas               884 fs/dax.c       		if (!xas_get_mark(xas, PAGECACHE_TAG_TOWRITE))
xas               889 fs/dax.c       	dax_lock_entry(xas, entry);
xas               898 fs/dax.c       	xas_clear_mark(xas, PAGECACHE_TAG_TOWRITE);
xas               899 fs/dax.c       	xas_unlock_irq(xas);
xas               910 fs/dax.c       	index = xas->xa_index & ~(count - 1);
xas               920 fs/dax.c       	xas_reset(xas);
xas               921 fs/dax.c       	xas_lock_irq(xas);
xas               922 fs/dax.c       	xas_store(xas, entry);
xas               923 fs/dax.c       	xas_clear_mark(xas, PAGECACHE_TAG_DIRTY);
xas               924 fs/dax.c       	dax_wake_entry(xas, entry, false);
xas               930 fs/dax.c       	put_unlocked_entry(xas, entry);
xas               942 fs/dax.c       	XA_STATE(xas, &mapping->i_pages, wbc->range_start >> PAGE_SHIFT);
xas               960 fs/dax.c       	trace_dax_writeback_range(inode, xas.xa_index, end_index);
xas               962 fs/dax.c       	tag_pages_for_writeback(mapping, xas.xa_index, end_index);
xas               964 fs/dax.c       	xas_lock_irq(&xas);
xas               965 fs/dax.c       	xas_for_each_marked(&xas, entry, end_index, PAGECACHE_TAG_TOWRITE) {
xas               966 fs/dax.c       		ret = dax_writeback_one(&xas, dax_dev, mapping, entry);
xas               974 fs/dax.c       		xas_pause(&xas);
xas               975 fs/dax.c       		xas_unlock_irq(&xas);
xas               977 fs/dax.c       		xas_lock_irq(&xas);
xas               979 fs/dax.c       	xas_unlock_irq(&xas);
xas               981 fs/dax.c       	trace_dax_writeback_range_done(inode, xas.xa_index, end_index);
xas              1030 fs/dax.c       static vm_fault_t dax_load_hole(struct xa_state *xas,
xas              1039 fs/dax.c       	*entry = dax_insert_entry(xas, mapping, vmf, *entry, pfn,
xas              1250 fs/dax.c       	XA_STATE(xas, &mapping->i_pages, vmf->pgoff);
xas              1277 fs/dax.c       	entry = grab_mapping_entry(&xas, mapping, 0);
xas              1352 fs/dax.c       		entry = dax_insert_entry(&xas, mapping, vmf, entry, pfn,
xas              1380 fs/dax.c       			ret = dax_load_hole(&xas, mapping, &entry, vmf);
xas              1407 fs/dax.c       	dax_unlock_entry(&xas, entry);
xas              1414 fs/dax.c       static vm_fault_t dax_pmd_load_hole(struct xa_state *xas, struct vm_fault *vmf,
xas              1433 fs/dax.c       	*entry = dax_insert_entry(xas, mapping, vmf, *entry, pfn,
xas              1471 fs/dax.c       	XA_STATE_ORDER(xas, &mapping->i_pages, vmf->pgoff, PMD_ORDER);
xas              1514 fs/dax.c       	if (xas.xa_index >= max_pgoff) {
xas              1520 fs/dax.c       	if ((xas.xa_index | PG_PMD_COLOUR) >= max_pgoff)
xas              1529 fs/dax.c       	entry = grab_mapping_entry(&xas, mapping, PMD_ORDER);
xas              1552 fs/dax.c       	pos = (loff_t)xas.xa_index << PAGE_SHIFT;
xas              1568 fs/dax.c       		entry = dax_insert_entry(&xas, mapping, vmf, entry, pfn,
xas              1592 fs/dax.c       		result = dax_pmd_load_hole(&xas, vmf, &iomap, &entry);
xas              1615 fs/dax.c       	dax_unlock_entry(&xas, entry);
xas              1673 fs/dax.c       	XA_STATE_ORDER(xas, &mapping->i_pages, vmf->pgoff, order);
xas              1677 fs/dax.c       	xas_lock_irq(&xas);
xas              1678 fs/dax.c       	entry = get_unlocked_entry(&xas, order);
xas              1682 fs/dax.c       		put_unlocked_entry(&xas, entry);
xas              1683 fs/dax.c       		xas_unlock_irq(&xas);
xas              1688 fs/dax.c       	xas_set_mark(&xas, PAGECACHE_TAG_DIRTY);
xas              1689 fs/dax.c       	dax_lock_entry(&xas, entry);
xas              1690 fs/dax.c       	xas_unlock_irq(&xas);
xas              1699 fs/dax.c       	dax_unlock_entry(&xas, entry);
xas               360 fs/fs-writeback.c 	XA_STATE(xas, &mapping->i_pages, 0);
xas               404 fs/fs-writeback.c 	xas_for_each_marked(&xas, page, ULONG_MAX, PAGECACHE_TAG_DIRTY) {
xas               411 fs/fs-writeback.c 	xas_set(&xas, 0);
xas               412 fs/fs-writeback.c 	xas_for_each_marked(&xas, page, ULONG_MAX, PAGECACHE_TAG_WRITEBACK) {
xas               316 include/linux/swap.h #define mapping_set_update(xas, mapping) do {				\
xas               318 include/linux/swap.h 		xas_set_update(xas, workingset_update_node);		\
xas              1331 include/linux/xarray.h #define xas_marked(xas, mark)	xa_marked((xas)->xa, (mark))
xas              1332 include/linux/xarray.h #define xas_trylock(xas)	xa_trylock((xas)->xa)
xas              1333 include/linux/xarray.h #define xas_lock(xas)		xa_lock((xas)->xa)
xas              1334 include/linux/xarray.h #define xas_unlock(xas)		xa_unlock((xas)->xa)
xas              1335 include/linux/xarray.h #define xas_lock_bh(xas)	xa_lock_bh((xas)->xa)
xas              1336 include/linux/xarray.h #define xas_unlock_bh(xas)	xa_unlock_bh((xas)->xa)
xas              1337 include/linux/xarray.h #define xas_lock_irq(xas)	xa_lock_irq((xas)->xa)
xas              1338 include/linux/xarray.h #define xas_unlock_irq(xas)	xa_unlock_irq((xas)->xa)
xas              1339 include/linux/xarray.h #define xas_lock_irqsave(xas, flags) \
xas              1340 include/linux/xarray.h 				xa_lock_irqsave((xas)->xa, flags)
xas              1341 include/linux/xarray.h #define xas_unlock_irqrestore(xas, flags) \
xas              1342 include/linux/xarray.h 				xa_unlock_irqrestore((xas)->xa, flags)
xas              1350 include/linux/xarray.h static inline int xas_error(const struct xa_state *xas)
xas              1352 include/linux/xarray.h 	return xa_err(xas->xa_node);
xas              1364 include/linux/xarray.h static inline void xas_set_err(struct xa_state *xas, long err)
xas              1366 include/linux/xarray.h 	xas->xa_node = XA_ERROR(err);
xas              1375 include/linux/xarray.h static inline bool xas_invalid(const struct xa_state *xas)
xas              1377 include/linux/xarray.h 	return (unsigned long)xas->xa_node & 3;
xas              1386 include/linux/xarray.h static inline bool xas_valid(const struct xa_state *xas)
xas              1388 include/linux/xarray.h 	return !xas_invalid(xas);
xas              1397 include/linux/xarray.h static inline bool xas_is_node(const struct xa_state *xas)
xas              1399 include/linux/xarray.h 	return xas_valid(xas) && xas->xa_node;
xas              1430 include/linux/xarray.h static inline void xas_reset(struct xa_state *xas)
xas              1432 include/linux/xarray.h 	xas->xa_node = XAS_RESTART;
xas              1447 include/linux/xarray.h static inline bool xas_retry(struct xa_state *xas, const void *entry)
xas              1453 include/linux/xarray.h 	xas_reset(xas);
xas              1487 include/linux/xarray.h static inline void *xas_reload(struct xa_state *xas)
xas              1489 include/linux/xarray.h 	struct xa_node *node = xas->xa_node;
xas              1492 include/linux/xarray.h 		return xa_entry(xas->xa, node, xas->xa_offset);
xas              1493 include/linux/xarray.h 	return xa_head(xas->xa);
xas              1505 include/linux/xarray.h static inline void xas_set(struct xa_state *xas, unsigned long index)
xas              1507 include/linux/xarray.h 	xas->xa_index = index;
xas              1508 include/linux/xarray.h 	xas->xa_node = XAS_RESTART;
xas              1517 include/linux/xarray.h static inline void xas_set_order(struct xa_state *xas, unsigned long index,
xas              1521 include/linux/xarray.h 	xas->xa_index = order < BITS_PER_LONG ? (index >> order) << order : 0;
xas              1522 include/linux/xarray.h 	xas->xa_shift = order - (order % XA_CHUNK_SHIFT);
xas              1523 include/linux/xarray.h 	xas->xa_sibs = (1 << (order % XA_CHUNK_SHIFT)) - 1;
xas              1524 include/linux/xarray.h 	xas->xa_node = XAS_RESTART;
xas              1527 include/linux/xarray.h 	xas_set(xas, index);
xas              1539 include/linux/xarray.h static inline void xas_set_update(struct xa_state *xas, xa_update_node_t update)
xas              1541 include/linux/xarray.h 	xas->xa_update = update;
xas              1555 include/linux/xarray.h static inline void *xas_next_entry(struct xa_state *xas, unsigned long max)
xas              1557 include/linux/xarray.h 	struct xa_node *node = xas->xa_node;
xas              1561 include/linux/xarray.h 			xas->xa_offset != (xas->xa_index & XA_CHUNK_MASK)))
xas              1562 include/linux/xarray.h 		return xas_find(xas, max);
xas              1565 include/linux/xarray.h 		if (unlikely(xas->xa_index >= max))
xas              1566 include/linux/xarray.h 			return xas_find(xas, max);
xas              1567 include/linux/xarray.h 		if (unlikely(xas->xa_offset == XA_CHUNK_MASK))
xas              1568 include/linux/xarray.h 			return xas_find(xas, max);
xas              1569 include/linux/xarray.h 		entry = xa_entry(xas->xa, node, xas->xa_offset + 1);
xas              1571 include/linux/xarray.h 			return xas_find(xas, max);
xas              1572 include/linux/xarray.h 		xas->xa_offset++;
xas              1573 include/linux/xarray.h 		xas->xa_index++;
xas              1580 include/linux/xarray.h static inline unsigned int xas_find_chunk(struct xa_state *xas, bool advance,
xas              1583 include/linux/xarray.h 	unsigned long *addr = xas->xa_node->marks[(__force unsigned)mark];
xas              1584 include/linux/xarray.h 	unsigned int offset = xas->xa_offset;
xas              1612 include/linux/xarray.h static inline void *xas_next_marked(struct xa_state *xas, unsigned long max,
xas              1615 include/linux/xarray.h 	struct xa_node *node = xas->xa_node;
xas              1620 include/linux/xarray.h 		return xas_find_marked(xas, max, mark);
xas              1621 include/linux/xarray.h 	offset = xas_find_chunk(xas, true, mark);
xas              1622 include/linux/xarray.h 	xas->xa_offset = offset;
xas              1623 include/linux/xarray.h 	xas->xa_index = (xas->xa_index & ~XA_CHUNK_MASK) + offset;
xas              1624 include/linux/xarray.h 	if (xas->xa_index > max)
xas              1627 include/linux/xarray.h 		return xas_find_marked(xas, max, mark);
xas              1628 include/linux/xarray.h 	entry = xa_entry(xas->xa, node, offset);
xas              1630 include/linux/xarray.h 		return xas_find_marked(xas, max, mark);
xas              1655 include/linux/xarray.h #define xas_for_each(xas, entry, max) \
xas              1656 include/linux/xarray.h 	for (entry = xas_find(xas, max); entry; \
xas              1657 include/linux/xarray.h 	     entry = xas_next_entry(xas, max))
xas              1673 include/linux/xarray.h #define xas_for_each_marked(xas, entry, max, mark) \
xas              1674 include/linux/xarray.h 	for (entry = xas_find_marked(xas, max, mark); entry; \
xas              1675 include/linux/xarray.h 	     entry = xas_next_marked(xas, max, mark))
xas              1690 include/linux/xarray.h #define xas_for_each_conflict(xas, entry) \
xas              1691 include/linux/xarray.h 	while ((entry = xas_find_conflict(xas)))
xas              1712 include/linux/xarray.h static inline void *xas_prev(struct xa_state *xas)
xas              1714 include/linux/xarray.h 	struct xa_node *node = xas->xa_node;
xas              1717 include/linux/xarray.h 				xas->xa_offset == 0))
xas              1718 include/linux/xarray.h 		return __xas_prev(xas);
xas              1720 include/linux/xarray.h 	xas->xa_index--;
xas              1721 include/linux/xarray.h 	xas->xa_offset--;
xas              1722 include/linux/xarray.h 	return xa_entry(xas->xa, node, xas->xa_offset);
xas              1741 include/linux/xarray.h static inline void *xas_next(struct xa_state *xas)
xas              1743 include/linux/xarray.h 	struct xa_node *node = xas->xa_node;
xas              1746 include/linux/xarray.h 				xas->xa_offset == XA_CHUNK_MASK))
xas              1747 include/linux/xarray.h 		return __xas_next(xas);
xas              1749 include/linux/xarray.h 	xas->xa_index++;
xas              1750 include/linux/xarray.h 	xas->xa_offset++;
xas              1751 include/linux/xarray.h 	return xa_entry(xas->xa, node, xas->xa_offset);
xas               382 lib/idr.c      	XA_STATE(xas, &ida->xa, min / IDA_BITMAP_BITS);
xas               394 lib/idr.c      	xas_lock_irqsave(&xas, flags);
xas               396 lib/idr.c      	bitmap = xas_find_marked(&xas, max / IDA_BITMAP_BITS, XA_FREE_MARK);
xas               397 lib/idr.c      	if (xas.xa_index > min / IDA_BITMAP_BITS)
xas               399 lib/idr.c      	if (xas.xa_index * IDA_BITMAP_BITS + bit > max)
xas               407 lib/idr.c      			if (xas.xa_index * IDA_BITMAP_BITS + bit > max)
xas               411 lib/idr.c      				xas_store(&xas, xa_mk_value(tmp));
xas               421 lib/idr.c      		xas_store(&xas, bitmap);
xas               422 lib/idr.c      		if (xas_error(&xas)) {
xas               430 lib/idr.c      		if (xas.xa_index * IDA_BITMAP_BITS + bit > max)
xas               437 lib/idr.c      			xas_clear_mark(&xas, XA_FREE_MARK);
xas               449 lib/idr.c      		xas_store(&xas, bitmap);
xas               452 lib/idr.c      	xas_unlock_irqrestore(&xas, flags);
xas               453 lib/idr.c      	if (xas_nomem(&xas, gfp)) {
xas               454 lib/idr.c      		xas.xa_index = min / IDA_BITMAP_BITS;
xas               460 lib/idr.c      	if (xas_error(&xas))
xas               461 lib/idr.c      		return xas_error(&xas);
xas               462 lib/idr.c      	return xas.xa_index * IDA_BITMAP_BITS + bit;
xas               464 lib/idr.c      	xas_unlock_irqrestore(&xas, flags);
xas               468 lib/idr.c      	xas_set(&xas, min / IDA_BITMAP_BITS);
xas               472 lib/idr.c      	xas_unlock_irqrestore(&xas, flags);
xas               486 lib/idr.c      	XA_STATE(xas, &ida->xa, id / IDA_BITMAP_BITS);
xas               493 lib/idr.c      	xas_lock_irqsave(&xas, flags);
xas               494 lib/idr.c      	bitmap = xas_load(&xas);
xas               505 lib/idr.c      		xas_store(&xas, xa_mk_value(v));
xas               510 lib/idr.c      		xas_set_mark(&xas, XA_FREE_MARK);
xas               514 lib/idr.c      			xas_store(&xas, NULL);
xas               517 lib/idr.c      	xas_unlock_irqrestore(&xas, flags);
xas               520 lib/idr.c      	xas_unlock_irqrestore(&xas, flags);
xas               538 lib/idr.c      	XA_STATE(xas, &ida->xa, 0);
xas               542 lib/idr.c      	xas_lock_irqsave(&xas, flags);
xas               543 lib/idr.c      	xas_for_each(&xas, bitmap, ULONG_MAX) {
xas               546 lib/idr.c      		xas_store(&xas, NULL);
xas               548 lib/idr.c      	xas_unlock_irqrestore(&xas, flags);
xas                74 lib/test_xarray.c 	XA_STATE_ORDER(xas, xa, index, order);
xas                78 lib/test_xarray.c 		xas_lock(&xas);
xas                79 lib/test_xarray.c 		curr = xas_store(&xas, entry);
xas                80 lib/test_xarray.c 		xas_unlock(&xas);
xas                81 lib/test_xarray.c 	} while (xas_nomem(&xas, gfp));
xas               104 lib/test_xarray.c 	XA_STATE(xas, xa, 0);
xas               111 lib/test_xarray.c 	XA_BUG_ON(xa, xas_find(&xas, ULONG_MAX) != xa_mk_value(0));
xas               113 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_is_retry(xas_reload(&xas)));
xas               114 lib/test_xarray.c 	XA_BUG_ON(xa, xas_retry(&xas, NULL));
xas               115 lib/test_xarray.c 	XA_BUG_ON(xa, xas_retry(&xas, xa_mk_value(0)));
xas               116 lib/test_xarray.c 	xas_reset(&xas);
xas               117 lib/test_xarray.c 	XA_BUG_ON(xa, xas.xa_node != XAS_RESTART);
xas               118 lib/test_xarray.c 	XA_BUG_ON(xa, xas_next_entry(&xas, ULONG_MAX) != xa_mk_value(0));
xas               119 lib/test_xarray.c 	XA_BUG_ON(xa, xas.xa_node != NULL);
xas               125 lib/test_xarray.c 	XA_BUG_ON(xa, !xa_is_internal(xas_reload(&xas)));
xas               126 lib/test_xarray.c 	xas.xa_node = XAS_RESTART;
xas               127 lib/test_xarray.c 	XA_BUG_ON(xa, xas_next_entry(&xas, ULONG_MAX) != xa_mk_value(0));
xas               131 lib/test_xarray.c 	xas_lock(&xas);
xas               132 lib/test_xarray.c 	xas_set(&xas, 0);
xas               133 lib/test_xarray.c 	xas_store(&xas, XA_RETRY_ENTRY);
xas               134 lib/test_xarray.c 	xas_set(&xas, 1);
xas               135 lib/test_xarray.c 	xas_store(&xas, XA_RETRY_ENTRY);
xas               137 lib/test_xarray.c 	xas_set(&xas, 0);
xas               138 lib/test_xarray.c 	xas_for_each(&xas, entry, ULONG_MAX) {
xas               139 lib/test_xarray.c 		xas_store(&xas, xa_mk_index(xas.xa_index));
xas               141 lib/test_xarray.c 	xas_unlock(&xas);
xas               220 lib/test_xarray.c 			XA_STATE(xas, xa, i);
xas               230 lib/test_xarray.c 			xas_for_each(&xas, entry, ULONG_MAX)
xas               236 lib/test_xarray.c 			xas_set(&xas, 0);
xas               239 lib/test_xarray.c 			xas_for_each_marked(&xas, entry, ULONG_MAX, XA_MARK_0)
xas               256 lib/test_xarray.c 	XA_STATE(xas, xa, 0);
xas               263 lib/test_xarray.c 	xas_lock(&xas);
xas               264 lib/test_xarray.c 	xas_load(&xas);
xas               265 lib/test_xarray.c 	xas_init_marks(&xas);
xas               266 lib/test_xarray.c 	xas_unlock(&xas);
xas               274 lib/test_xarray.c 	xas_reset(&xas);
xas               276 lib/test_xarray.c 	xas_for_each_marked(&xas, entry, ULONG_MAX, XA_MARK_0)
xas               281 lib/test_xarray.c 	xas_lock(&xas);
xas               282 lib/test_xarray.c 	xas_for_each(&xas, entry, ULONG_MAX) {
xas               283 lib/test_xarray.c 		xas_init_marks(&xas);
xas               284 lib/test_xarray.c 		XA_BUG_ON(xa, !xa_get_mark(xa, xas.xa_index, XA_MARK_0));
xas               285 lib/test_xarray.c 		XA_BUG_ON(xa, !xas_get_mark(&xas, XA_MARK_0));
xas               287 lib/test_xarray.c 	xas_unlock(&xas);
xas               304 lib/test_xarray.c 	XA_STATE(xas, xa, 1);
xas               317 lib/test_xarray.c 	xas_lock(&xas);
xas               318 lib/test_xarray.c 	XA_BUG_ON(xa, xas_load(&xas) != xa_mk_value(1));
xas               319 lib/test_xarray.c 	node = xas.xa_node;
xas               321 lib/test_xarray.c 	XA_BUG_ON(xa, xas_store(&xas, NULL) != xa_mk_value(1));
xas               323 lib/test_xarray.c 	XA_BUG_ON(xa, xas.xa_node != XAS_BOUNDS);
xas               325 lib/test_xarray.c 	XA_BUG_ON(xa, xas_load(&xas) != NULL);
xas               326 lib/test_xarray.c 	xas_unlock(&xas);
xas               469 lib/test_xarray.c 	XA_STATE(xas, xa, 0);
xas               475 lib/test_xarray.c 			xas_set(&xas, j);
xas               477 lib/test_xarray.c 				xas_lock(&xas);
xas               478 lib/test_xarray.c 				xas_store(&xas, xa_mk_index(j));
xas               479 lib/test_xarray.c 				xas_unlock(&xas);
xas               480 lib/test_xarray.c 			} while (xas_nomem(&xas, GFP_KERNEL));
xas               483 lib/test_xarray.c 		xas_set(&xas, ULONG_MAX);
xas               485 lib/test_xarray.c 			xas_lock(&xas);
xas               486 lib/test_xarray.c 			xas_store(&xas, xa_mk_value(0));
xas               487 lib/test_xarray.c 			xas_unlock(&xas);
xas               488 lib/test_xarray.c 		} while (xas_nomem(&xas, GFP_KERNEL));
xas               490 lib/test_xarray.c 		xas_lock(&xas);
xas               491 lib/test_xarray.c 		xas_store(&xas, NULL);
xas               493 lib/test_xarray.c 		xas_set(&xas, 0);
xas               495 lib/test_xarray.c 		xas_for_each(&xas, entry, ULONG_MAX) {
xas               497 lib/test_xarray.c 			xas_store(&xas, NULL);
xas               500 lib/test_xarray.c 		xas_unlock(&xas);
xas               509 lib/test_xarray.c 	XA_STATE(xas, xa, index);
xas               519 lib/test_xarray.c 	xas_lock(&xas);
xas               520 lib/test_xarray.c 	XA_BUG_ON(xa, xas_store(&xas, xa_mk_index(min)) != xa_mk_index(index));
xas               521 lib/test_xarray.c 	xas_unlock(&xas);
xas               534 lib/test_xarray.c 	XA_STATE(xas, xa, index);
xas               537 lib/test_xarray.c 	xas_lock(&xas);
xas               538 lib/test_xarray.c 	XA_BUG_ON(xa, xas_store(&xas, xa_mk_value(1)) != xa_mk_value(0));
xas               539 lib/test_xarray.c 	XA_BUG_ON(xa, xas.xa_index != index);
xas               540 lib/test_xarray.c 	XA_BUG_ON(xa, xas_store(&xas, NULL) != xa_mk_value(1));
xas               541 lib/test_xarray.c 	xas_unlock(&xas);
xas               548 lib/test_xarray.c 	XA_STATE(xas, xa, 0);
xas               554 lib/test_xarray.c 	xas_lock(&xas);
xas               555 lib/test_xarray.c 	xas_for_each(&xas, entry, ULONG_MAX) {
xas               560 lib/test_xarray.c 	xas_set(&xas, index + 1);
xas               561 lib/test_xarray.c 	xas_for_each(&xas, entry, ULONG_MAX) {
xas               566 lib/test_xarray.c 	xas_unlock(&xas);
xas               845 lib/test_xarray.c 	XA_STATE_ORDER(xas, xa, start, order);
xas               850 lib/test_xarray.c 	xas_lock(&xas);
xas               851 lib/test_xarray.c 	xas_for_each_conflict(&xas, entry) {
xas               857 lib/test_xarray.c 	xas_store(&xas, xa_mk_index(start));
xas               858 lib/test_xarray.c 	xas_unlock(&xas);
xas               859 lib/test_xarray.c 	if (xas_nomem(&xas, GFP_KERNEL)) {
xas               863 lib/test_xarray.c 	XA_BUG_ON(xa, xas_error(&xas));
xas               950 lib/test_xarray.c 			XA_STATE(xas, xa, j + index);
xas               955 lib/test_xarray.c 			xas_for_each(&xas, entry, ULONG_MAX) {
xas              1050 lib/test_xarray.c 	XA_STATE(xas, xa, 0);
xas              1058 lib/test_xarray.c 				xas_set(&xas, j);
xas              1059 lib/test_xarray.c 				xas_for_each_marked(&xas, entry, k, XA_MARK_0)
xas              1063 lib/test_xarray.c 						xas.xa_node != XAS_RESTART);
xas              1107 lib/test_xarray.c 	XA_STATE(xas, xa, 0);
xas              1112 lib/test_xarray.c 	xas_for_each(&xas, entry, ULONG_MAX) {
xas              1113 lib/test_xarray.c 		if (xas_retry(&xas, entry))
xas              1120 lib/test_xarray.c 		xas_pause(&xas);
xas              1124 lib/test_xarray.c 	return entry ? xas.xa_index : -1;
xas              1161 lib/test_xarray.c 	XA_STATE(xas, xa, 0);
xas              1174 lib/test_xarray.c 	xas_for_each(&xas, entry, ULONG_MAX) {
xas              1182 lib/test_xarray.c 	xas_set(&xas, 0);
xas              1184 lib/test_xarray.c 	xas_for_each(&xas, entry, ULONG_MAX) {
xas              1187 lib/test_xarray.c 		xas_pause(&xas);
xas              1197 lib/test_xarray.c 	XA_STATE(xas, xa, 0);
xas              1201 lib/test_xarray.c 	XA_BUG_ON(xa, xas_next(&xas) != NULL);
xas              1202 lib/test_xarray.c 	XA_BUG_ON(xa, xas_next(&xas) != NULL);
xas              1206 lib/test_xarray.c 	xas_set(&xas, 0);
xas              1207 lib/test_xarray.c 	XA_BUG_ON(xa, xas_next(&xas) != xa_mk_index(0));
xas              1208 lib/test_xarray.c 	XA_BUG_ON(xa, xas_next(&xas) != NULL);
xas              1209 lib/test_xarray.c 	xas_set(&xas, 0);
xas              1210 lib/test_xarray.c 	XA_BUG_ON(xa, xas_prev(&xas) != xa_mk_index(0));
xas              1211 lib/test_xarray.c 	XA_BUG_ON(xa, xas_prev(&xas) != NULL);
xas              1219 lib/test_xarray.c 	XA_STATE(xas, xa, 0);
xas              1223 lib/test_xarray.c 	XA_BUG_ON(xa, xas_find(&xas, ULONG_MAX) != xa_mk_index(ULONG_MAX));
xas              1224 lib/test_xarray.c 	XA_BUG_ON(xa, xas_find(&xas, ULONG_MAX) != NULL);
xas              1227 lib/test_xarray.c 	xas_set(&xas, 0);
xas              1229 lib/test_xarray.c 	XA_BUG_ON(xa, xas_find(&xas, ULONG_MAX) != xa_mk_index(ULONG_MAX));
xas              1230 lib/test_xarray.c 	xas_pause(&xas);
xas              1231 lib/test_xarray.c 	XA_BUG_ON(xa, xas_find(&xas, ULONG_MAX) != NULL);
xas              1240 lib/test_xarray.c 	XA_STATE(xas, xa, 0);
xas              1248 lib/test_xarray.c 		void *entry = xas_next(&xas);
xas              1250 lib/test_xarray.c 			XA_BUG_ON(xa, xas.xa_node == XAS_RESTART);
xas              1251 lib/test_xarray.c 		XA_BUG_ON(xa, xas.xa_index != i);
xas              1257 lib/test_xarray.c 	xas_next(&xas);
xas              1258 lib/test_xarray.c 	XA_BUG_ON(xa, xas.xa_index != i);
xas              1261 lib/test_xarray.c 		void *entry = xas_prev(&xas);
xas              1264 lib/test_xarray.c 			XA_BUG_ON(xa, xas.xa_node == XAS_RESTART);
xas              1265 lib/test_xarray.c 		XA_BUG_ON(xa, xas.xa_index != i);
xas              1272 lib/test_xarray.c 	xas_set(&xas, ULONG_MAX);
xas              1273 lib/test_xarray.c 	XA_BUG_ON(xa, xas_next(&xas) != NULL);
xas              1274 lib/test_xarray.c 	XA_BUG_ON(xa, xas.xa_index != ULONG_MAX);
xas              1275 lib/test_xarray.c 	XA_BUG_ON(xa, xas_next(&xas) != xa_mk_value(0));
xas              1276 lib/test_xarray.c 	XA_BUG_ON(xa, xas.xa_index != 0);
xas              1277 lib/test_xarray.c 	XA_BUG_ON(xa, xas_prev(&xas) != NULL);
xas              1278 lib/test_xarray.c 	XA_BUG_ON(xa, xas.xa_index != ULONG_MAX);
xas              1288 lib/test_xarray.c 	XA_STATE(xas, xa, (1 << 16) - 1);
xas              1296 lib/test_xarray.c 		void *entry = xas_prev(&xas);
xas              1299 lib/test_xarray.c 		XA_BUG_ON(xa, i != xas.xa_index);
xas              1302 lib/test_xarray.c 	XA_BUG_ON(xa, xas_prev(&xas) != NULL);
xas              1303 lib/test_xarray.c 	XA_BUG_ON(xa, xas.xa_index != ULONG_MAX);
xas              1306 lib/test_xarray.c 		void *entry = xas_next(&xas);
xas              1308 lib/test_xarray.c 		XA_BUG_ON(xa, i != xas.xa_index);
xas              1316 lib/test_xarray.c 	i = xas.xa_index;
xas              1320 lib/test_xarray.c 		void *entry = xas_prev(&xas);
xas              1326 lib/test_xarray.c 		XA_BUG_ON(xa, i != xas.xa_index);
xas              1329 lib/test_xarray.c 	XA_BUG_ON(xa, xas_prev(&xas) != NULL);
xas              1330 lib/test_xarray.c 	XA_BUG_ON(xa, xas.xa_index != ULONG_MAX);
xas              1333 lib/test_xarray.c 		void *entry = xas_next(&xas);
xas              1338 lib/test_xarray.c 		XA_BUG_ON(xa, i != xas.xa_index);
xas              1358 lib/test_xarray.c 	XA_STATE_ORDER(xas, xa, index, order);
xas              1362 lib/test_xarray.c 		xas_lock(&xas);
xas              1363 lib/test_xarray.c 		XA_BUG_ON(xa, xas_find_conflict(&xas));
xas              1364 lib/test_xarray.c 		xas_create_range(&xas);
xas              1365 lib/test_xarray.c 		if (xas_error(&xas))
xas              1368 lib/test_xarray.c 			XA_BUG_ON(xa, xas_store(&xas, xa_mk_index(index + i)));
xas              1369 lib/test_xarray.c 			xas_next(&xas);
xas              1372 lib/test_xarray.c 		xas_unlock(&xas);
xas              1373 lib/test_xarray.c 	} while (xas_nomem(&xas, GFP_KERNEL));
xas              1375 lib/test_xarray.c 	XA_BUG_ON(xa, xas_error(&xas));
xas              1403 lib/test_xarray.c 	XA_STATE(xas, NULL, 0);
xas              1404 lib/test_xarray.c 	xas_set_err(&xas, -EEXIST);
xas              1405 lib/test_xarray.c 	xas_create_range(&xas);
xas              1406 lib/test_xarray.c 	XA_BUG_ON(NULL, xas_error(&xas) != -EEXIST);
xas              1412 lib/test_xarray.c 	XA_STATE_ORDER(xas, xa, index, order);
xas              1413 lib/test_xarray.c 	unsigned long base = xas.xa_index;
xas              1418 lib/test_xarray.c 		xas_lock(&xas);
xas              1419 lib/test_xarray.c 		xas_create_range(&xas);
xas              1420 lib/test_xarray.c 		if (xas_error(&xas))
xas              1423 lib/test_xarray.c 			void *old = xas_store(&xas, xa_mk_index(base + i));
xas              1424 lib/test_xarray.c 			if (xas.xa_index == index)
xas              1428 lib/test_xarray.c 			xas_next(&xas);
xas              1431 lib/test_xarray.c 		xas_unlock(&xas);
xas              1432 lib/test_xarray.c 	} while (xas_nomem(&xas, GFP_KERNEL));
xas              1434 lib/test_xarray.c 	XA_BUG_ON(xa, xas_error(&xas));
xas              1578 lib/test_xarray.c 		XA_STATE(xas, node->array, 0);
xas              1581 lib/test_xarray.c 		xas.xa_node = xa_parent_locked(node->array, node);
xas              1582 lib/test_xarray.c 		xas.xa_offset = node->offset;
xas              1583 lib/test_xarray.c 		xas.xa_shift = node->shift + XA_CHUNK_SHIFT;
xas              1584 lib/test_xarray.c 		xas_set_update(&xas, test_update_node);
xas              1585 lib/test_xarray.c 		xas_store(&xas, NULL);
xas              1592 lib/test_xarray.c 	XA_STATE(xas, xa, index);
xas              1593 lib/test_xarray.c 	xas_set_update(&xas, test_update_node);
xas              1596 lib/test_xarray.c 		xas_lock(&xas);
xas              1597 lib/test_xarray.c 		xas_store(&xas, xa_mk_value(0));
xas              1598 lib/test_xarray.c 		xas_next(&xas);
xas              1599 lib/test_xarray.c 		xas_store(&xas, xa_mk_value(1));
xas              1600 lib/test_xarray.c 		xas_unlock(&xas);
xas              1601 lib/test_xarray.c 	} while (xas_nomem(&xas, GFP_KERNEL));
xas              1605 lib/test_xarray.c 	xas_lock(&xas);
xas              1606 lib/test_xarray.c 	xas_next(&xas);
xas              1607 lib/test_xarray.c 	xas_store(&xas, &xas);
xas              1610 lib/test_xarray.c 	xas_store(&xas, xa_mk_value(2));
xas              1611 lib/test_xarray.c 	xas_unlock(&xas);
xas              1629 lib/test_xarray.c 		XA_STATE(xas, xa, 1 << order);
xas              1633 lib/test_xarray.c 		xas_load(&xas);
xas              1634 lib/test_xarray.c 		XA_BUG_ON(xa, xas.xa_node->count == 0);
xas              1635 lib/test_xarray.c 		XA_BUG_ON(xa, xas.xa_node->count > (1 << order));
xas              1636 lib/test_xarray.c 		XA_BUG_ON(xa, xas.xa_node->nr_values != 0);
xas              1641 lib/test_xarray.c 		XA_BUG_ON(xa, xas.xa_node->count != xas.xa_node->nr_values * 2);
xas              1644 lib/test_xarray.c 		XA_BUG_ON(xa, xas.xa_node->nr_values != 0);
xas                36 lib/xarray.c   static inline void xas_lock_type(struct xa_state *xas, unsigned int lock_type)
xas                39 lib/xarray.c   		xas_lock_irq(xas);
xas                41 lib/xarray.c   		xas_lock_bh(xas);
xas                43 lib/xarray.c   		xas_lock(xas);
xas                46 lib/xarray.c   static inline void xas_unlock_type(struct xa_state *xas, unsigned int lock_type)
xas                49 lib/xarray.c   		xas_unlock_irq(xas);
xas                51 lib/xarray.c   		xas_unlock_bh(xas);
xas                53 lib/xarray.c   		xas_unlock(xas);
xas               124 lib/xarray.c   static void xas_squash_marks(const struct xa_state *xas)
xas               127 lib/xarray.c   	unsigned int limit = xas->xa_offset + xas->xa_sibs + 1;
xas               129 lib/xarray.c   	if (!xas->xa_sibs)
xas               133 lib/xarray.c   		unsigned long *marks = xas->xa_node->marks[mark];
xas               134 lib/xarray.c   		if (find_next_bit(marks, limit, xas->xa_offset + 1) == limit)
xas               136 lib/xarray.c   		__set_bit(xas->xa_offset, marks);
xas               137 lib/xarray.c   		bitmap_clear(marks, xas->xa_offset + 1, xas->xa_sibs);
xas               147 lib/xarray.c   static void xas_set_offset(struct xa_state *xas)
xas               149 lib/xarray.c   	xas->xa_offset = get_offset(xas->xa_index, xas->xa_node);
xas               153 lib/xarray.c   static void xas_move_index(struct xa_state *xas, unsigned long offset)
xas               155 lib/xarray.c   	unsigned int shift = xas->xa_node->shift;
xas               156 lib/xarray.c   	xas->xa_index &= ~XA_CHUNK_MASK << shift;
xas               157 lib/xarray.c   	xas->xa_index += offset << shift;
xas               160 lib/xarray.c   static void xas_advance(struct xa_state *xas)
xas               162 lib/xarray.c   	xas->xa_offset++;
xas               163 lib/xarray.c   	xas_move_index(xas, xas->xa_offset);
xas               166 lib/xarray.c   static void *set_bounds(struct xa_state *xas)
xas               168 lib/xarray.c   	xas->xa_node = XAS_BOUNDS;
xas               179 lib/xarray.c   static void *xas_start(struct xa_state *xas)
xas               183 lib/xarray.c   	if (xas_valid(xas))
xas               184 lib/xarray.c   		return xas_reload(xas);
xas               185 lib/xarray.c   	if (xas_error(xas))
xas               188 lib/xarray.c   	entry = xa_head(xas->xa);
xas               190 lib/xarray.c   		if (xas->xa_index)
xas               191 lib/xarray.c   			return set_bounds(xas);
xas               193 lib/xarray.c   		if ((xas->xa_index >> xa_to_node(entry)->shift) > XA_CHUNK_MASK)
xas               194 lib/xarray.c   			return set_bounds(xas);
xas               197 lib/xarray.c   	xas->xa_node = NULL;
xas               201 lib/xarray.c   static void *xas_descend(struct xa_state *xas, struct xa_node *node)
xas               203 lib/xarray.c   	unsigned int offset = get_offset(xas->xa_index, node);
xas               204 lib/xarray.c   	void *entry = xa_entry(xas->xa, node, offset);
xas               206 lib/xarray.c   	xas->xa_node = node;
xas               209 lib/xarray.c   		entry = xa_entry(xas->xa, node, offset);
xas               212 lib/xarray.c   	xas->xa_offset = offset;
xas               231 lib/xarray.c   void *xas_load(struct xa_state *xas)
xas               233 lib/xarray.c   	void *entry = xas_start(xas);
xas               238 lib/xarray.c   		if (xas->xa_shift > node->shift)
xas               240 lib/xarray.c   		entry = xas_descend(xas, node);
xas               267 lib/xarray.c   static void xas_destroy(struct xa_state *xas)
xas               269 lib/xarray.c   	struct xa_node *node = xas->xa_alloc;
xas               275 lib/xarray.c   	xas->xa_alloc = NULL;
xas               296 lib/xarray.c   bool xas_nomem(struct xa_state *xas, gfp_t gfp)
xas               298 lib/xarray.c   	if (xas->xa_node != XA_ERROR(-ENOMEM)) {
xas               299 lib/xarray.c   		xas_destroy(xas);
xas               302 lib/xarray.c   	if (xas->xa->xa_flags & XA_FLAGS_ACCOUNT)
xas               304 lib/xarray.c   	xas->xa_alloc = kmem_cache_alloc(radix_tree_node_cachep, gfp);
xas               305 lib/xarray.c   	if (!xas->xa_alloc)
xas               307 lib/xarray.c   	XA_NODE_BUG_ON(xas->xa_alloc, !list_empty(&xas->xa_alloc->private_list));
xas               308 lib/xarray.c   	xas->xa_node = XAS_RESTART;
xas               322 lib/xarray.c   static bool __xas_nomem(struct xa_state *xas, gfp_t gfp)
xas               323 lib/xarray.c   	__must_hold(xas->xa->xa_lock)
xas               325 lib/xarray.c   	unsigned int lock_type = xa_lock_type(xas->xa);
xas               327 lib/xarray.c   	if (xas->xa_node != XA_ERROR(-ENOMEM)) {
xas               328 lib/xarray.c   		xas_destroy(xas);
xas               331 lib/xarray.c   	if (xas->xa->xa_flags & XA_FLAGS_ACCOUNT)
xas               334 lib/xarray.c   		xas_unlock_type(xas, lock_type);
xas               335 lib/xarray.c   		xas->xa_alloc = kmem_cache_alloc(radix_tree_node_cachep, gfp);
xas               336 lib/xarray.c   		xas_lock_type(xas, lock_type);
xas               338 lib/xarray.c   		xas->xa_alloc = kmem_cache_alloc(radix_tree_node_cachep, gfp);
xas               340 lib/xarray.c   	if (!xas->xa_alloc)
xas               342 lib/xarray.c   	XA_NODE_BUG_ON(xas->xa_alloc, !list_empty(&xas->xa_alloc->private_list));
xas               343 lib/xarray.c   	xas->xa_node = XAS_RESTART;
xas               347 lib/xarray.c   static void xas_update(struct xa_state *xas, struct xa_node *node)
xas               349 lib/xarray.c   	if (xas->xa_update)
xas               350 lib/xarray.c   		xas->xa_update(node);
xas               355 lib/xarray.c   static void *xas_alloc(struct xa_state *xas, unsigned int shift)
xas               357 lib/xarray.c   	struct xa_node *parent = xas->xa_node;
xas               358 lib/xarray.c   	struct xa_node *node = xas->xa_alloc;
xas               360 lib/xarray.c   	if (xas_invalid(xas))
xas               364 lib/xarray.c   		xas->xa_alloc = NULL;
xas               368 lib/xarray.c   		if (xas->xa->xa_flags & XA_FLAGS_ACCOUNT)
xas               373 lib/xarray.c   			xas_set_err(xas, -ENOMEM);
xas               379 lib/xarray.c   		node->offset = xas->xa_offset;
xas               382 lib/xarray.c   		xas_update(xas, parent);
xas               389 lib/xarray.c   	RCU_INIT_POINTER(node->parent, xas->xa_node);
xas               390 lib/xarray.c   	node->array = xas->xa;
xas               397 lib/xarray.c   static unsigned long xas_size(const struct xa_state *xas)
xas               399 lib/xarray.c   	return (xas->xa_sibs + 1UL) << xas->xa_shift;
xas               409 lib/xarray.c   static unsigned long xas_max(struct xa_state *xas)
xas               411 lib/xarray.c   	unsigned long max = xas->xa_index;
xas               414 lib/xarray.c   	if (xas->xa_shift || xas->xa_sibs) {
xas               415 lib/xarray.c   		unsigned long mask = xas_size(xas) - 1;
xas               433 lib/xarray.c   static void xas_shrink(struct xa_state *xas)
xas               435 lib/xarray.c   	struct xarray *xa = xas->xa;
xas               436 lib/xarray.c   	struct xa_node *node = xas->xa_node;
xas               451 lib/xarray.c   		xas->xa_node = XAS_BOUNDS;
xas               461 lib/xarray.c   		xas_update(xas, node);
xas               477 lib/xarray.c   static void xas_delete_node(struct xa_state *xas)
xas               479 lib/xarray.c   	struct xa_node *node = xas->xa_node;
xas               488 lib/xarray.c   		parent = xa_parent_locked(xas->xa, node);
xas               489 lib/xarray.c   		xas->xa_node = parent;
xas               490 lib/xarray.c   		xas->xa_offset = node->offset;
xas               494 lib/xarray.c   			xas->xa->xa_head = NULL;
xas               495 lib/xarray.c   			xas->xa_node = XAS_BOUNDS;
xas               499 lib/xarray.c   		parent->slots[xas->xa_offset] = NULL;
xas               503 lib/xarray.c   		xas_update(xas, node);
xas               507 lib/xarray.c   		xas_shrink(xas);
xas               519 lib/xarray.c   static void xas_free_nodes(struct xa_state *xas, struct xa_node *top)
xas               525 lib/xarray.c   		void *entry = xa_entry_locked(xas->xa, node, offset);
xas               538 lib/xarray.c   			parent = xa_parent_locked(xas->xa, node);
xas               542 lib/xarray.c   			xas_update(xas, node);
xas               555 lib/xarray.c   static int xas_expand(struct xa_state *xas, void *head)
xas               557 lib/xarray.c   	struct xarray *xa = xas->xa;
xas               560 lib/xarray.c   	unsigned long max = xas_max(xas);
xas               572 lib/xarray.c   	xas->xa_node = NULL;
xas               578 lib/xarray.c   		node = xas_alloc(xas, shift);
xas               613 lib/xarray.c   		xas_update(xas, node);
xas               618 lib/xarray.c   	xas->xa_node = node;
xas               635 lib/xarray.c   static void *xas_create(struct xa_state *xas, bool allow_root)
xas               637 lib/xarray.c   	struct xarray *xa = xas->xa;
xas               640 lib/xarray.c   	struct xa_node *node = xas->xa_node;
xas               642 lib/xarray.c   	unsigned int order = xas->xa_shift;
xas               646 lib/xarray.c   		xas->xa_node = NULL;
xas               649 lib/xarray.c   		shift = xas_expand(xas, entry);
xas               656 lib/xarray.c   	} else if (xas_error(xas)) {
xas               659 lib/xarray.c   		unsigned int offset = xas->xa_offset;
xas               673 lib/xarray.c   			node = xas_alloc(xas, shift);
xas               684 lib/xarray.c   		entry = xas_descend(xas, node);
xas               685 lib/xarray.c   		slot = &node->slots[xas->xa_offset];
xas               700 lib/xarray.c   void xas_create_range(struct xa_state *xas)
xas               702 lib/xarray.c   	unsigned long index = xas->xa_index;
xas               703 lib/xarray.c   	unsigned char shift = xas->xa_shift;
xas               704 lib/xarray.c   	unsigned char sibs = xas->xa_sibs;
xas               706 lib/xarray.c   	xas->xa_index |= ((sibs + 1) << shift) - 1;
xas               707 lib/xarray.c   	if (xas_is_node(xas) && xas->xa_node->shift == xas->xa_shift)
xas               708 lib/xarray.c   		xas->xa_offset |= sibs;
xas               709 lib/xarray.c   	xas->xa_shift = 0;
xas               710 lib/xarray.c   	xas->xa_sibs = 0;
xas               713 lib/xarray.c   		xas_create(xas, true);
xas               714 lib/xarray.c   		if (xas_error(xas))
xas               716 lib/xarray.c   		if (xas->xa_index <= (index | XA_CHUNK_MASK))
xas               718 lib/xarray.c   		xas->xa_index -= XA_CHUNK_SIZE;
xas               721 lib/xarray.c   			struct xa_node *node = xas->xa_node;
xas               722 lib/xarray.c   			xas->xa_node = xa_parent_locked(xas->xa, node);
xas               723 lib/xarray.c   			xas->xa_offset = node->offset - 1;
xas               730 lib/xarray.c   	xas->xa_shift = shift;
xas               731 lib/xarray.c   	xas->xa_sibs = sibs;
xas               732 lib/xarray.c   	xas->xa_index = index;
xas               735 lib/xarray.c   	xas->xa_index = index;
xas               736 lib/xarray.c   	if (xas->xa_node)
xas               737 lib/xarray.c   		xas_set_offset(xas);
xas               741 lib/xarray.c   static void update_node(struct xa_state *xas, struct xa_node *node,
xas               751 lib/xarray.c   	xas_update(xas, node);
xas               753 lib/xarray.c   		xas_delete_node(xas);
xas               769 lib/xarray.c   void *xas_store(struct xa_state *xas, void *entry)
xas               772 lib/xarray.c   	void __rcu **slot = &xas->xa->xa_head;
xas               781 lib/xarray.c   		first = xas_create(xas, allow_root);
xas               783 lib/xarray.c   		first = xas_load(xas);
xas               786 lib/xarray.c   	if (xas_invalid(xas))
xas               788 lib/xarray.c   	node = xas->xa_node;
xas               789 lib/xarray.c   	if (node && (xas->xa_shift < node->shift))
xas               790 lib/xarray.c   		xas->xa_sibs = 0;
xas               791 lib/xarray.c   	if ((first == entry) && !xas->xa_sibs)
xas               795 lib/xarray.c   	offset = xas->xa_offset;
xas               796 lib/xarray.c   	max = xas->xa_offset + xas->xa_sibs;
xas               799 lib/xarray.c   		if (xas->xa_sibs)
xas               800 lib/xarray.c   			xas_squash_marks(xas);
xas               803 lib/xarray.c   		xas_init_marks(xas);
xas               815 lib/xarray.c   			xas_free_nodes(xas, xa_to_node(next));
xas               824 lib/xarray.c   				entry = xa_mk_sibling(xas->xa_offset);
xas               829 lib/xarray.c   		next = xa_entry_locked(xas->xa, node, ++offset);
xas               838 lib/xarray.c   	update_node(xas, node, count, values);
xas               851 lib/xarray.c   bool xas_get_mark(const struct xa_state *xas, xa_mark_t mark)
xas               853 lib/xarray.c   	if (xas_invalid(xas))
xas               855 lib/xarray.c   	if (!xas->xa_node)
xas               856 lib/xarray.c   		return xa_marked(xas->xa, mark);
xas               857 lib/xarray.c   	return node_get_mark(xas->xa_node, xas->xa_offset, mark);
xas               870 lib/xarray.c   void xas_set_mark(const struct xa_state *xas, xa_mark_t mark)
xas               872 lib/xarray.c   	struct xa_node *node = xas->xa_node;
xas               873 lib/xarray.c   	unsigned int offset = xas->xa_offset;
xas               875 lib/xarray.c   	if (xas_invalid(xas))
xas               882 lib/xarray.c   		node = xa_parent_locked(xas->xa, node);
xas               885 lib/xarray.c   	if (!xa_marked(xas->xa, mark))
xas               886 lib/xarray.c   		xa_mark_set(xas->xa, mark);
xas               899 lib/xarray.c   void xas_clear_mark(const struct xa_state *xas, xa_mark_t mark)
xas               901 lib/xarray.c   	struct xa_node *node = xas->xa_node;
xas               902 lib/xarray.c   	unsigned int offset = xas->xa_offset;
xas               904 lib/xarray.c   	if (xas_invalid(xas))
xas               914 lib/xarray.c   		node = xa_parent_locked(xas->xa, node);
xas               917 lib/xarray.c   	if (xa_marked(xas->xa, mark))
xas               918 lib/xarray.c   		xa_mark_clear(xas->xa, mark);
xas               933 lib/xarray.c   void xas_init_marks(const struct xa_state *xas)
xas               938 lib/xarray.c   		if (xa_track_free(xas->xa) && mark == XA_FREE_MARK)
xas               939 lib/xarray.c   			xas_set_mark(xas, mark);
xas               941 lib/xarray.c   			xas_clear_mark(xas, mark);
xas               964 lib/xarray.c   void xas_pause(struct xa_state *xas)
xas               966 lib/xarray.c   	struct xa_node *node = xas->xa_node;
xas               968 lib/xarray.c   	if (xas_invalid(xas))
xas               971 lib/xarray.c   	xas->xa_node = XAS_RESTART;
xas               973 lib/xarray.c   		unsigned long offset = xas->xa_offset;
xas               975 lib/xarray.c   			if (!xa_is_sibling(xa_entry(xas->xa, node, offset)))
xas               978 lib/xarray.c   		xas->xa_index += (offset - xas->xa_offset) << node->shift;
xas               979 lib/xarray.c   		if (xas->xa_index == 0)
xas               980 lib/xarray.c   			xas->xa_node = XAS_BOUNDS;
xas               982 lib/xarray.c   		xas->xa_index++;
xas               994 lib/xarray.c   void *__xas_prev(struct xa_state *xas)
xas               998 lib/xarray.c   	if (!xas_frozen(xas->xa_node))
xas               999 lib/xarray.c   		xas->xa_index--;
xas              1000 lib/xarray.c   	if (!xas->xa_node)
xas              1001 lib/xarray.c   		return set_bounds(xas);
xas              1002 lib/xarray.c   	if (xas_not_node(xas->xa_node))
xas              1003 lib/xarray.c   		return xas_load(xas);
xas              1005 lib/xarray.c   	if (xas->xa_offset != get_offset(xas->xa_index, xas->xa_node))
xas              1006 lib/xarray.c   		xas->xa_offset--;
xas              1008 lib/xarray.c   	while (xas->xa_offset == 255) {
xas              1009 lib/xarray.c   		xas->xa_offset = xas->xa_node->offset - 1;
xas              1010 lib/xarray.c   		xas->xa_node = xa_parent(xas->xa, xas->xa_node);
xas              1011 lib/xarray.c   		if (!xas->xa_node)
xas              1012 lib/xarray.c   			return set_bounds(xas);
xas              1016 lib/xarray.c   		entry = xa_entry(xas->xa, xas->xa_node, xas->xa_offset);
xas              1020 lib/xarray.c   		xas->xa_node = xa_to_node(entry);
xas              1021 lib/xarray.c   		xas_set_offset(xas);
xas              1033 lib/xarray.c   void *__xas_next(struct xa_state *xas)
xas              1037 lib/xarray.c   	if (!xas_frozen(xas->xa_node))
xas              1038 lib/xarray.c   		xas->xa_index++;
xas              1039 lib/xarray.c   	if (!xas->xa_node)
xas              1040 lib/xarray.c   		return set_bounds(xas);
xas              1041 lib/xarray.c   	if (xas_not_node(xas->xa_node))
xas              1042 lib/xarray.c   		return xas_load(xas);
xas              1044 lib/xarray.c   	if (xas->xa_offset != get_offset(xas->xa_index, xas->xa_node))
xas              1045 lib/xarray.c   		xas->xa_offset++;
xas              1047 lib/xarray.c   	while (xas->xa_offset == XA_CHUNK_SIZE) {
xas              1048 lib/xarray.c   		xas->xa_offset = xas->xa_node->offset + 1;
xas              1049 lib/xarray.c   		xas->xa_node = xa_parent(xas->xa, xas->xa_node);
xas              1050 lib/xarray.c   		if (!xas->xa_node)
xas              1051 lib/xarray.c   			return set_bounds(xas);
xas              1055 lib/xarray.c   		entry = xa_entry(xas->xa, xas->xa_node, xas->xa_offset);
xas              1059 lib/xarray.c   		xas->xa_node = xa_to_node(entry);
xas              1060 lib/xarray.c   		xas_set_offset(xas);
xas              1081 lib/xarray.c   void *xas_find(struct xa_state *xas, unsigned long max)
xas              1085 lib/xarray.c   	if (xas_error(xas) || xas->xa_node == XAS_BOUNDS)
xas              1087 lib/xarray.c   	if (xas->xa_index > max)
xas              1088 lib/xarray.c   		return set_bounds(xas);
xas              1090 lib/xarray.c   	if (!xas->xa_node) {
xas              1091 lib/xarray.c   		xas->xa_index = 1;
xas              1092 lib/xarray.c   		return set_bounds(xas);
xas              1093 lib/xarray.c   	} else if (xas->xa_node == XAS_RESTART) {
xas              1094 lib/xarray.c   		entry = xas_load(xas);
xas              1095 lib/xarray.c   		if (entry || xas_not_node(xas->xa_node))
xas              1097 lib/xarray.c   	} else if (!xas->xa_node->shift &&
xas              1098 lib/xarray.c   		    xas->xa_offset != (xas->xa_index & XA_CHUNK_MASK)) {
xas              1099 lib/xarray.c   		xas->xa_offset = ((xas->xa_index - 1) & XA_CHUNK_MASK) + 1;
xas              1102 lib/xarray.c   	xas_advance(xas);
xas              1104 lib/xarray.c   	while (xas->xa_node && (xas->xa_index <= max)) {
xas              1105 lib/xarray.c   		if (unlikely(xas->xa_offset == XA_CHUNK_SIZE)) {
xas              1106 lib/xarray.c   			xas->xa_offset = xas->xa_node->offset + 1;
xas              1107 lib/xarray.c   			xas->xa_node = xa_parent(xas->xa, xas->xa_node);
xas              1111 lib/xarray.c   		entry = xa_entry(xas->xa, xas->xa_node, xas->xa_offset);
xas              1113 lib/xarray.c   			xas->xa_node = xa_to_node(entry);
xas              1114 lib/xarray.c   			xas->xa_offset = 0;
xas              1120 lib/xarray.c   		xas_advance(xas);
xas              1123 lib/xarray.c   	if (!xas->xa_node)
xas              1124 lib/xarray.c   		xas->xa_node = XAS_BOUNDS;
xas              1150 lib/xarray.c   void *xas_find_marked(struct xa_state *xas, unsigned long max, xa_mark_t mark)
xas              1156 lib/xarray.c   	if (xas_error(xas))
xas              1158 lib/xarray.c   	if (xas->xa_index > max)
xas              1161 lib/xarray.c   	if (!xas->xa_node) {
xas              1162 lib/xarray.c   		xas->xa_index = 1;
xas              1164 lib/xarray.c   	} else if (xas_top(xas->xa_node)) {
xas              1166 lib/xarray.c   		entry = xa_head(xas->xa);
xas              1167 lib/xarray.c   		xas->xa_node = NULL;
xas              1168 lib/xarray.c   		if (xas->xa_index > max_index(entry))
xas              1171 lib/xarray.c   			if (xa_marked(xas->xa, mark))
xas              1173 lib/xarray.c   			xas->xa_index = 1;
xas              1176 lib/xarray.c   		xas->xa_node = xa_to_node(entry);
xas              1177 lib/xarray.c   		xas->xa_offset = xas->xa_index >> xas->xa_node->shift;
xas              1180 lib/xarray.c   	while (xas->xa_index <= max) {
xas              1181 lib/xarray.c   		if (unlikely(xas->xa_offset == XA_CHUNK_SIZE)) {
xas              1182 lib/xarray.c   			xas->xa_offset = xas->xa_node->offset + 1;
xas              1183 lib/xarray.c   			xas->xa_node = xa_parent(xas->xa, xas->xa_node);
xas              1184 lib/xarray.c   			if (!xas->xa_node)
xas              1191 lib/xarray.c   			entry = xa_entry(xas->xa, xas->xa_node, xas->xa_offset);
xas              1193 lib/xarray.c   				xas->xa_offset = xa_to_sibling(entry);
xas              1194 lib/xarray.c   				xas_move_index(xas, xas->xa_offset);
xas              1198 lib/xarray.c   		offset = xas_find_chunk(xas, advance, mark);
xas              1199 lib/xarray.c   		if (offset > xas->xa_offset) {
xas              1201 lib/xarray.c   			xas_move_index(xas, offset);
xas              1203 lib/xarray.c   			if ((xas->xa_index - 1) >= max)
xas              1205 lib/xarray.c   			xas->xa_offset = offset;
xas              1210 lib/xarray.c   		entry = xa_entry(xas->xa, xas->xa_node, xas->xa_offset);
xas              1211 lib/xarray.c   		if (!entry && !(xa_track_free(xas->xa) && mark == XA_FREE_MARK))
xas              1215 lib/xarray.c   		xas->xa_node = xa_to_node(entry);
xas              1216 lib/xarray.c   		xas_set_offset(xas);
xas              1220 lib/xarray.c   	if (xas->xa_index > max)
xas              1222 lib/xarray.c   	return set_bounds(xas);
xas              1224 lib/xarray.c   	xas->xa_node = XAS_RESTART;
xas              1238 lib/xarray.c   void *xas_find_conflict(struct xa_state *xas)
xas              1242 lib/xarray.c   	if (xas_error(xas))
xas              1245 lib/xarray.c   	if (!xas->xa_node)
xas              1248 lib/xarray.c   	if (xas_top(xas->xa_node)) {
xas              1249 lib/xarray.c   		curr = xas_start(xas);
xas              1254 lib/xarray.c   			curr = xas_descend(xas, node);
xas              1260 lib/xarray.c   	if (xas->xa_node->shift > xas->xa_shift)
xas              1264 lib/xarray.c   		if (xas->xa_node->shift == xas->xa_shift) {
xas              1265 lib/xarray.c   			if ((xas->xa_offset & xas->xa_sibs) == xas->xa_sibs)
xas              1267 lib/xarray.c   		} else if (xas->xa_offset == XA_CHUNK_MASK) {
xas              1268 lib/xarray.c   			xas->xa_offset = xas->xa_node->offset;
xas              1269 lib/xarray.c   			xas->xa_node = xa_parent_locked(xas->xa, xas->xa_node);
xas              1270 lib/xarray.c   			if (!xas->xa_node)
xas              1274 lib/xarray.c   		curr = xa_entry_locked(xas->xa, xas->xa_node, ++xas->xa_offset);
xas              1278 lib/xarray.c   			xas->xa_node = xa_to_node(curr);
xas              1279 lib/xarray.c   			xas->xa_offset = 0;
xas              1280 lib/xarray.c   			curr = xa_entry_locked(xas->xa, xas->xa_node, 0);
xas              1285 lib/xarray.c   	xas->xa_offset -= xas->xa_sibs;
xas              1300 lib/xarray.c   	XA_STATE(xas, xa, index);
xas              1305 lib/xarray.c   		entry = xas_load(&xas);
xas              1308 lib/xarray.c   	} while (xas_retry(&xas, entry));
xas              1315 lib/xarray.c   static void *xas_result(struct xa_state *xas, void *curr)
xas              1319 lib/xarray.c   	if (xas_error(xas))
xas              1320 lib/xarray.c   		curr = xas->xa_node;
xas              1338 lib/xarray.c   	XA_STATE(xas, xa, index);
xas              1339 lib/xarray.c   	return xas_result(&xas, xas_store(&xas, NULL));
xas              1384 lib/xarray.c   	XA_STATE(xas, xa, index);
xas              1393 lib/xarray.c   		curr = xas_store(&xas, entry);
xas              1395 lib/xarray.c   			xas_clear_mark(&xas, XA_FREE_MARK);
xas              1396 lib/xarray.c   	} while (__xas_nomem(&xas, gfp));
xas              1398 lib/xarray.c   	return xas_result(&xas, curr);
xas              1450 lib/xarray.c   	XA_STATE(xas, xa, index);
xas              1457 lib/xarray.c   		curr = xas_load(&xas);
xas              1459 lib/xarray.c   			xas_store(&xas, entry);
xas              1461 lib/xarray.c   				xas_clear_mark(&xas, XA_FREE_MARK);
xas              1463 lib/xarray.c   	} while (__xas_nomem(&xas, gfp));
xas              1465 lib/xarray.c   	return xas_result(&xas, curr);
xas              1487 lib/xarray.c   	XA_STATE(xas, xa, index);
xas              1496 lib/xarray.c   		curr = xas_load(&xas);
xas              1498 lib/xarray.c   			xas_store(&xas, entry);
xas              1500 lib/xarray.c   				xas_clear_mark(&xas, XA_FREE_MARK);
xas              1502 lib/xarray.c   			xas_set_err(&xas, -EBUSY);
xas              1504 lib/xarray.c   	} while (__xas_nomem(&xas, gfp));
xas              1506 lib/xarray.c   	return xas_error(&xas);
xas              1511 lib/xarray.c   static void xas_set_range(struct xa_state *xas, unsigned long first,
xas              1518 lib/xarray.c   	xas_set(xas, first);
xas              1538 lib/xarray.c   	xas->xa_shift = shift;
xas              1539 lib/xarray.c   	xas->xa_sibs = sibs;
xas              1563 lib/xarray.c   	XA_STATE(xas, xa, 0);
xas              1571 lib/xarray.c   		xas_lock(&xas);
xas              1576 lib/xarray.c   			xas_set_order(&xas, last, order);
xas              1577 lib/xarray.c   			xas_create(&xas, true);
xas              1578 lib/xarray.c   			if (xas_error(&xas))
xas              1582 lib/xarray.c   			xas_set_range(&xas, first, last);
xas              1583 lib/xarray.c   			xas_store(&xas, entry);
xas              1584 lib/xarray.c   			if (xas_error(&xas))
xas              1586 lib/xarray.c   			first += xas_size(&xas);
xas              1589 lib/xarray.c   		xas_unlock(&xas);
xas              1590 lib/xarray.c   	} while (xas_nomem(&xas, gfp));
xas              1592 lib/xarray.c   	return xas_result(&xas, NULL);
xas              1617 lib/xarray.c   	XA_STATE(xas, xa, 0);
xas              1628 lib/xarray.c   		xas.xa_index = limit.min;
xas              1629 lib/xarray.c   		xas_find_marked(&xas, limit.max, XA_FREE_MARK);
xas              1630 lib/xarray.c   		if (xas.xa_node == XAS_RESTART)
xas              1631 lib/xarray.c   			xas_set_err(&xas, -EBUSY);
xas              1633 lib/xarray.c   			*id = xas.xa_index;
xas              1634 lib/xarray.c   		xas_store(&xas, entry);
xas              1635 lib/xarray.c   		xas_clear_mark(&xas, XA_FREE_MARK);
xas              1636 lib/xarray.c   	} while (__xas_nomem(&xas, gfp));
xas              1638 lib/xarray.c   	return xas_error(&xas);
xas              1704 lib/xarray.c   	XA_STATE(xas, xa, index);
xas              1705 lib/xarray.c   	void *entry = xas_load(&xas);
xas              1708 lib/xarray.c   		xas_set_mark(&xas, mark);
xas              1722 lib/xarray.c   	XA_STATE(xas, xa, index);
xas              1723 lib/xarray.c   	void *entry = xas_load(&xas);
xas              1726 lib/xarray.c   		xas_clear_mark(&xas, mark);
xas              1744 lib/xarray.c   	XA_STATE(xas, xa, index);
xas              1748 lib/xarray.c   	entry = xas_start(&xas);
xas              1749 lib/xarray.c   	while (xas_get_mark(&xas, mark)) {
xas              1752 lib/xarray.c   		entry = xas_descend(&xas, xa_to_node(entry));
xas              1818 lib/xarray.c   	XA_STATE(xas, xa, *indexp);
xas              1824 lib/xarray.c   			entry = xas_find_marked(&xas, max, filter);
xas              1826 lib/xarray.c   			entry = xas_find(&xas, max);
xas              1827 lib/xarray.c   	} while (xas_retry(&xas, entry));
xas              1831 lib/xarray.c   		*indexp = xas.xa_index;
xas              1836 lib/xarray.c   static bool xas_sibling(struct xa_state *xas)
xas              1838 lib/xarray.c   	struct xa_node *node = xas->xa_node;
xas              1844 lib/xarray.c   	return (xas->xa_index & mask) >
xas              1845 lib/xarray.c   		((unsigned long)xas->xa_offset << node->shift);
xas              1868 lib/xarray.c   	XA_STATE(xas, xa, *indexp + 1);
xas              1871 lib/xarray.c   	if (xas.xa_index == 0)
xas              1877 lib/xarray.c   			entry = xas_find_marked(&xas, max, filter);
xas              1879 lib/xarray.c   			entry = xas_find(&xas, max);
xas              1881 lib/xarray.c   		if (xas_invalid(&xas))
xas              1883 lib/xarray.c   		if (xas_sibling(&xas))
xas              1885 lib/xarray.c   		if (!xas_retry(&xas, entry))
xas              1891 lib/xarray.c   		*indexp = xas.xa_index;
xas              1896 lib/xarray.c   static unsigned int xas_extract_present(struct xa_state *xas, void **dst,
xas              1903 lib/xarray.c   	xas_for_each(xas, entry, max) {
xas              1904 lib/xarray.c   		if (xas_retry(xas, entry))
xas              1915 lib/xarray.c   static unsigned int xas_extract_marked(struct xa_state *xas, void **dst,
xas              1922 lib/xarray.c   	xas_for_each_marked(xas, entry, max, mark) {
xas              1923 lib/xarray.c   		if (xas_retry(xas, entry))
xas              1965 lib/xarray.c   	XA_STATE(xas, xa, start);
xas              1971 lib/xarray.c   		return xas_extract_marked(&xas, dst, max, n, filter);
xas              1972 lib/xarray.c   	return xas_extract_present(&xas, dst, max, n);
xas              1988 lib/xarray.c   	XA_STATE(xas, xa, 0);
xas              1992 lib/xarray.c   	xas.xa_node = NULL;
xas              1993 lib/xarray.c   	xas_lock_irqsave(&xas, flags);
xas              1996 lib/xarray.c   	xas_init_marks(&xas);
xas              2001 lib/xarray.c   		xas_free_nodes(&xas, xa_to_node(entry));
xas              2002 lib/xarray.c   	xas_unlock_irqrestore(&xas, flags);
xas               122 mm/filemap.c   	XA_STATE(xas, &mapping->i_pages, page->index);
xas               125 mm/filemap.c   	mapping_set_update(&xas, mapping);
xas               129 mm/filemap.c   		xas_set_order(&xas, page->index, compound_order(page));
xas               137 mm/filemap.c   	xas_store(&xas, shadow);
xas               138 mm/filemap.c   	xas_init_marks(&xas);
xas               297 mm/filemap.c   	XA_STATE(xas, &mapping->i_pages, pvec->pages[0]->index);
xas               302 mm/filemap.c   	mapping_set_update(&xas, mapping);
xas               303 mm/filemap.c   	xas_for_each(&xas, page, ULONG_MAX) {
xas               325 mm/filemap.c   		if (page->index == xas.xa_index)
xas               334 mm/filemap.c   		if (page->index + compound_nr(page) - 1 == xas.xa_index)
xas               336 mm/filemap.c   		xas_store(&xas, NULL);
xas               476 mm/filemap.c   	XA_STATE(xas, &mapping->i_pages, start_byte >> PAGE_SHIFT);
xas               484 mm/filemap.c   		page = xas_find(&xas, max);
xas               485 mm/filemap.c   		if (xas_retry(&xas, page))
xas               816 mm/filemap.c   	XA_STATE(xas, &mapping->i_pages, offset);
xas               827 mm/filemap.c   	xas_lock_irqsave(&xas, flags);
xas               828 mm/filemap.c   	xas_store(&xas, new);
xas               840 mm/filemap.c   	xas_unlock_irqrestore(&xas, flags);
xas               855 mm/filemap.c   	XA_STATE(xas, &mapping->i_pages, offset);
xas               863 mm/filemap.c   	mapping_set_update(&xas, mapping);
xas               877 mm/filemap.c   		xas_lock_irq(&xas);
xas               878 mm/filemap.c   		old = xas_load(&xas);
xas               880 mm/filemap.c   			xas_set_err(&xas, -EEXIST);
xas               881 mm/filemap.c   		xas_store(&xas, page);
xas               882 mm/filemap.c   		if (xas_error(&xas))
xas               896 mm/filemap.c   		xas_unlock_irq(&xas);
xas               897 mm/filemap.c   	} while (xas_nomem(&xas, gfp_mask & GFP_RECLAIM_MASK));
xas               899 mm/filemap.c   	if (xas_error(&xas))
xas               912 mm/filemap.c   	return xas_error(&xas);
xas              1462 mm/filemap.c   	XA_STATE(xas, &mapping->i_pages, index);
xas              1465 mm/filemap.c   		void *entry = xas_next(&xas);
xas              1468 mm/filemap.c   		if (xas.xa_index == 0)
xas              1472 mm/filemap.c   	return xas.xa_index;
xas              1498 mm/filemap.c   	XA_STATE(xas, &mapping->i_pages, index);
xas              1501 mm/filemap.c   		void *entry = xas_prev(&xas);
xas              1504 mm/filemap.c   		if (xas.xa_index == ULONG_MAX)
xas              1508 mm/filemap.c   	return xas.xa_index;
xas              1527 mm/filemap.c   	XA_STATE(xas, &mapping->i_pages, offset);
xas              1532 mm/filemap.c   	xas_reset(&xas);
xas              1533 mm/filemap.c   	page = xas_load(&xas);
xas              1534 mm/filemap.c   	if (xas_retry(&xas, page))
xas              1551 mm/filemap.c   	if (unlikely(page != xas_reload(&xas))) {
xas              1728 mm/filemap.c   	XA_STATE(xas, &mapping->i_pages, start);
xas              1736 mm/filemap.c   	xas_for_each(&xas, page, ULONG_MAX) {
xas              1737 mm/filemap.c   		if (xas_retry(&xas, page))
xas              1751 mm/filemap.c   		if (unlikely(page != xas_reload(&xas)))
xas              1753 mm/filemap.c   		page = find_subpage(page, xas.xa_index);
xas              1756 mm/filemap.c   		indices[ret] = xas.xa_index;
xas              1764 mm/filemap.c   		xas_reset(&xas);
xas              1795 mm/filemap.c   	XA_STATE(xas, &mapping->i_pages, *start);
xas              1803 mm/filemap.c   	xas_for_each(&xas, page, end) {
xas              1804 mm/filemap.c   		if (xas_retry(&xas, page))
xas              1814 mm/filemap.c   		if (unlikely(page != xas_reload(&xas)))
xas              1817 mm/filemap.c   		pages[ret] = find_subpage(page, xas.xa_index);
xas              1819 mm/filemap.c   			*start = xas.xa_index + 1;
xas              1826 mm/filemap.c   		xas_reset(&xas);
xas              1860 mm/filemap.c   	XA_STATE(xas, &mapping->i_pages, index);
xas              1868 mm/filemap.c   	for (page = xas_load(&xas); page; page = xas_next(&xas)) {
xas              1869 mm/filemap.c   		if (xas_retry(&xas, page))
xas              1882 mm/filemap.c   		if (unlikely(page != xas_reload(&xas)))
xas              1885 mm/filemap.c   		pages[ret] = find_subpage(page, xas.xa_index);
xas              1892 mm/filemap.c   		xas_reset(&xas);
xas              1917 mm/filemap.c   	XA_STATE(xas, &mapping->i_pages, *index);
xas              1925 mm/filemap.c   	xas_for_each_marked(&xas, page, end, tag) {
xas              1926 mm/filemap.c   		if (xas_retry(&xas, page))
xas              1940 mm/filemap.c   		if (unlikely(page != xas_reload(&xas)))
xas              1943 mm/filemap.c   		pages[ret] = find_subpage(page, xas.xa_index);
xas              1945 mm/filemap.c   			*index = xas.xa_index + 1;
xas              1952 mm/filemap.c   		xas_reset(&xas);
xas              2609 mm/filemap.c   	XA_STATE(xas, &mapping->i_pages, start_pgoff);
xas              2613 mm/filemap.c   	xas_for_each(&xas, page, end_pgoff) {
xas              2614 mm/filemap.c   		if (xas_retry(&xas, page))
xas              2629 mm/filemap.c   		if (unlikely(page != xas_reload(&xas)))
xas              2631 mm/filemap.c   		page = find_subpage(page, xas.xa_index);
xas              2650 mm/filemap.c   		vmf->address += (xas.xa_index - last_pgoff) << PAGE_SHIFT;
xas              2652 mm/filemap.c   			vmf->pte += xas.xa_index - last_pgoff;
xas              2653 mm/filemap.c   		last_pgoff = xas.xa_index;
xas              2773 mm/huge_memory.c 		XA_STATE(xas, &mapping->i_pages, page_index(head));
xas              2780 mm/huge_memory.c 		if (xas_load(&xas) != head)
xas              1502 mm/khugepaged.c 	XA_STATE_ORDER(xas, &mapping->i_pages, start, HPAGE_PMD_ORDER);
xas              1525 mm/khugepaged.c 		xas_lock_irq(&xas);
xas              1526 mm/khugepaged.c 		xas_create_range(&xas);
xas              1527 mm/khugepaged.c 		if (!xas_error(&xas))
xas              1529 mm/khugepaged.c 		xas_unlock_irq(&xas);
xas              1530 mm/khugepaged.c 		if (!xas_nomem(&xas, GFP_KERNEL)) {
xas              1549 mm/khugepaged.c 	xas_set(&xas, start);
xas              1551 mm/khugepaged.c 		struct page *page = xas_next(&xas);
xas              1553 mm/khugepaged.c 		VM_BUG_ON(index != xas.xa_index);
xas              1562 mm/khugepaged.c 					if (!xas_next_entry(&xas, end - 1)) {
xas              1566 mm/khugepaged.c 					xas_set(&xas, index);
xas              1572 mm/khugepaged.c 				xas_store(&xas, new_page);
xas              1578 mm/khugepaged.c 				xas_unlock_irq(&xas);
xas              1587 mm/khugepaged.c 				xas_unlock_irq(&xas);
xas              1594 mm/khugepaged.c 				xas_unlock_irq(&xas);
xas              1607 mm/khugepaged.c 				xas_unlock_irq(&xas);
xas              1665 mm/khugepaged.c 		xas_lock_irq(&xas);
xas              1666 mm/khugepaged.c 		xas_set(&xas, index);
xas              1668 mm/khugepaged.c 		VM_BUG_ON_PAGE(page != xas_load(&xas), page);
xas              1679 mm/khugepaged.c 			xas_unlock_irq(&xas);
xas              1691 mm/khugepaged.c 		xas_store(&xas, new_page);
xas              1716 mm/khugepaged.c 	xas_unlock_irq(&xas);
xas              1771 mm/khugepaged.c 		xas_lock_irq(&xas);
xas              1777 mm/khugepaged.c 		xas_set(&xas, start);
xas              1778 mm/khugepaged.c 		xas_for_each(&xas, page, end - 1) {
xas              1781 mm/khugepaged.c 			if (!page || xas.xa_index < page->index) {
xas              1786 mm/khugepaged.c 				xas_store(&xas, NULL);
xas              1790 mm/khugepaged.c 			VM_BUG_ON_PAGE(page->index != xas.xa_index, page);
xas              1795 mm/khugepaged.c 			xas_store(&xas, page);
xas              1796 mm/khugepaged.c 			xas_pause(&xas);
xas              1797 mm/khugepaged.c 			xas_unlock_irq(&xas);
xas              1800 mm/khugepaged.c 			xas_lock_irq(&xas);
xas              1803 mm/khugepaged.c 		xas_unlock_irq(&xas);
xas              1820 mm/khugepaged.c 	XA_STATE(xas, &mapping->i_pages, start);
xas              1829 mm/khugepaged.c 	xas_for_each(&xas, page, start + HPAGE_PMD_NR - 1) {
xas              1830 mm/khugepaged.c 		if (xas_retry(&xas, page))
xas              1873 mm/khugepaged.c 			xas_pause(&xas);
xas                31 mm/memfd.c     static void memfd_tag_pins(struct xa_state *xas)
xas                38 mm/memfd.c     	xas_lock_irq(xas);
xas                39 mm/memfd.c     	xas_for_each(xas, page, ULONG_MAX) {
xas                42 mm/memfd.c     		page = find_subpage(page, xas->xa_index);
xas                44 mm/memfd.c     			xas_set_mark(xas, MEMFD_TAG_PINNED);
xas                49 mm/memfd.c     		xas_pause(xas);
xas                50 mm/memfd.c     		xas_unlock_irq(xas);
xas                52 mm/memfd.c     		xas_lock_irq(xas);
xas                54 mm/memfd.c     	xas_unlock_irq(xas);
xas                68 mm/memfd.c     	XA_STATE(xas, &mapping->i_pages, 0);
xas                72 mm/memfd.c     	memfd_tag_pins(&xas);
xas                78 mm/memfd.c     		if (!xas_marked(&xas, MEMFD_TAG_PINNED))
xas                86 mm/memfd.c     		xas_set(&xas, 0);
xas                87 mm/memfd.c     		xas_lock_irq(&xas);
xas                88 mm/memfd.c     		xas_for_each_marked(&xas, page, ULONG_MAX, MEMFD_TAG_PINNED) {
xas                92 mm/memfd.c     			page = find_subpage(page, xas.xa_index);
xas               105 mm/memfd.c     				xas_clear_mark(&xas, MEMFD_TAG_PINNED);
xas               109 mm/memfd.c     			xas_pause(&xas);
xas               110 mm/memfd.c     			xas_unlock_irq(&xas);
xas               112 mm/memfd.c     			xas_lock_irq(&xas);
xas               114 mm/memfd.c     		xas_unlock_irq(&xas);
xas               400 mm/migrate.c   	XA_STATE(xas, &mapping->i_pages, page_index(page));
xas               422 mm/migrate.c   	xas_lock_irq(&xas);
xas               423 mm/migrate.c   	if (page_count(page) != expected_count || xas_load(&xas) != page) {
xas               424 mm/migrate.c   		xas_unlock_irq(&xas);
xas               429 mm/migrate.c   		xas_unlock_irq(&xas);
xas               457 mm/migrate.c   	xas_store(&xas, newpage);
xas               462 mm/migrate.c   			xas_next(&xas);
xas               463 mm/migrate.c   			xas_store(&xas, newpage);
xas               474 mm/migrate.c   	xas_unlock(&xas);
xas               514 mm/migrate.c   	XA_STATE(xas, &mapping->i_pages, page_index(page));
xas               517 mm/migrate.c   	xas_lock_irq(&xas);
xas               519 mm/migrate.c   	if (page_count(page) != expected_count || xas_load(&xas) != page) {
xas               520 mm/migrate.c   		xas_unlock_irq(&xas);
xas               525 mm/migrate.c   		xas_unlock_irq(&xas);
xas               534 mm/migrate.c   	xas_store(&xas, newpage);
xas               538 mm/migrate.c   	xas_unlock_irq(&xas);
xas              2108 mm/page-writeback.c 	XA_STATE(xas, &mapping->i_pages, start);
xas              2112 mm/page-writeback.c 	xas_lock_irq(&xas);
xas              2113 mm/page-writeback.c 	xas_for_each_marked(&xas, page, end, PAGECACHE_TAG_DIRTY) {
xas              2114 mm/page-writeback.c 		xas_set_mark(&xas, PAGECACHE_TAG_TOWRITE);
xas              2118 mm/page-writeback.c 		xas_pause(&xas);
xas              2119 mm/page-writeback.c 		xas_unlock_irq(&xas);
xas              2121 mm/page-writeback.c 		xas_lock_irq(&xas);
xas              2123 mm/page-writeback.c 	xas_unlock_irq(&xas);
xas              2771 mm/page-writeback.c 		XA_STATE(xas, &mapping->i_pages, page_index(page));
xas              2776 mm/page-writeback.c 		xas_lock_irqsave(&xas, flags);
xas              2777 mm/page-writeback.c 		xas_load(&xas);
xas              2785 mm/page-writeback.c 			xas_set_mark(&xas, PAGECACHE_TAG_WRITEBACK);
xas              2798 mm/page-writeback.c 			xas_clear_mark(&xas, PAGECACHE_TAG_DIRTY);
xas              2800 mm/page-writeback.c 			xas_clear_mark(&xas, PAGECACHE_TAG_TOWRITE);
xas              2801 mm/page-writeback.c 		xas_unlock_irqrestore(&xas, flags);
xas               356 mm/shmem.c     	XA_STATE(xas, &mapping->i_pages, index);
xas               361 mm/shmem.c     	item = xas_load(&xas);
xas               364 mm/shmem.c     	xas_store(&xas, replacement);
xas               610 mm/shmem.c     	XA_STATE_ORDER(xas, &mapping->i_pages, index, compound_order(page));
xas               626 mm/shmem.c     		xas_lock_irq(&xas);
xas               627 mm/shmem.c     		entry = xas_find_conflict(&xas);
xas               629 mm/shmem.c     			xas_set_err(&xas, -EEXIST);
xas               630 mm/shmem.c     		xas_create_range(&xas);
xas               631 mm/shmem.c     		if (xas_error(&xas))
xas               634 mm/shmem.c     		xas_store(&xas, page);
xas               636 mm/shmem.c     			xas_next(&xas);
xas               647 mm/shmem.c     		xas_unlock_irq(&xas);
xas               648 mm/shmem.c     	} while (xas_nomem(&xas, gfp));
xas               650 mm/shmem.c     	if (xas_error(&xas)) {
xas               653 mm/shmem.c     		return xas_error(&xas);
xas               705 mm/shmem.c     	XA_STATE(xas, &mapping->i_pages, start);
xas               710 mm/shmem.c     	xas_for_each(&xas, page, end - 1) {
xas               711 mm/shmem.c     		if (xas_retry(&xas, page))
xas               717 mm/shmem.c     			xas_pause(&xas);
xas              1126 mm/shmem.c     	XA_STATE(xas, &mapping->i_pages, start);
xas              1135 mm/shmem.c     	xas_for_each(&xas, page, ULONG_MAX) {
xas              1136 mm/shmem.c     		if (xas_retry(&xas, page))
xas              1149 mm/shmem.c     		indices[ret] = xas.xa_index;
xas              1153 mm/shmem.c     			xas_pause(&xas);
xas               118 mm/swap_state.c 	XA_STATE_ORDER(xas, &address_space->i_pages, idx, compound_order(page));
xas               129 mm/swap_state.c 		xas_lock_irq(&xas);
xas               130 mm/swap_state.c 		xas_create_range(&xas);
xas               131 mm/swap_state.c 		if (xas_error(&xas))
xas               134 mm/swap_state.c 			VM_BUG_ON_PAGE(xas.xa_index != idx + i, page);
xas               136 mm/swap_state.c 			xas_store(&xas, page);
xas               137 mm/swap_state.c 			xas_next(&xas);
xas               143 mm/swap_state.c 		xas_unlock_irq(&xas);
xas               144 mm/swap_state.c 	} while (xas_nomem(&xas, gfp));
xas               146 mm/swap_state.c 	if (!xas_error(&xas))
xas               151 mm/swap_state.c 	return xas_error(&xas);
xas               163 mm/swap_state.c 	XA_STATE(xas, &address_space->i_pages, idx);
xas               170 mm/swap_state.c 		void *entry = xas_store(&xas, NULL);
xas               173 mm/swap_state.c 		xas_next(&xas);
xas                37 mm/truncate.c  	XA_STATE(xas, &mapping->i_pages, index);
xas                39 mm/truncate.c  	xas_set_update(&xas, workingset_update_node);
xas                40 mm/truncate.c  	if (xas_load(&xas) != entry)
xas                42 mm/truncate.c  	xas_store(&xas, NULL);
xas               455 mm/workingset.c 	XA_STATE(xas, node->array, 0);
xas               495 mm/workingset.c 	xas.xa_node = xa_parent_locked(&mapping->i_pages, node);
xas               496 mm/workingset.c 	xas.xa_offset = node->offset;
xas               497 mm/workingset.c 	xas.xa_shift = node->shift + XA_CHUNK_SHIFT;
xas               498 mm/workingset.c 	xas_set_update(&xas, workingset_update_node);
xas               503 mm/workingset.c 	xas_store(&xas, NULL);
xas                23 tools/testing/radix-tree/iteration_check.c 	XA_STATE(xas, xa, index);
xas                28 tools/testing/radix-tree/iteration_check.c 	xas_lock(&xas);
xas                30 tools/testing/radix-tree/iteration_check.c 		xas_set_order(&xas, index, order);
xas                32 tools/testing/radix-tree/iteration_check.c 		if (xas_find_conflict(&xas))
xas                34 tools/testing/radix-tree/iteration_check.c 		xas_store(&xas, item);
xas                35 tools/testing/radix-tree/iteration_check.c 		xas_set_mark(&xas, TAG);
xas                38 tools/testing/radix-tree/iteration_check.c 	xas_unlock(&xas);
xas                39 tools/testing/radix-tree/iteration_check.c 	if (xas_nomem(&xas, GFP_KERNEL))
xas                69 tools/testing/radix-tree/iteration_check.c 	XA_STATE(xas, &array, 0);
xas                75 tools/testing/radix-tree/iteration_check.c 		xas_set(&xas, 0);
xas                77 tools/testing/radix-tree/iteration_check.c 		xas_for_each_marked(&xas, entry, ULONG_MAX, TAG) {
xas                78 tools/testing/radix-tree/iteration_check.c 			if (xas_retry(&xas, entry))
xas                82 tools/testing/radix-tree/iteration_check.c 				xas_pause(&xas);
xas               102 tools/testing/radix-tree/iteration_check.c 	XA_STATE(xas, &array, 0);
xas               108 tools/testing/radix-tree/iteration_check.c 		xas_set(&xas, 0);
xas               110 tools/testing/radix-tree/iteration_check.c 		xas_for_each(&xas, entry, ULONG_MAX) {
xas               111 tools/testing/radix-tree/iteration_check.c 			if (xas_retry(&xas, entry))
xas               115 tools/testing/radix-tree/iteration_check.c 				xas_pause(&xas);
xas                15 tools/testing/radix-tree/iteration_check_2.c 	XA_STATE(xas, arg, 0);
xas                21 tools/testing/radix-tree/iteration_check_2.c 		xas_set(&xas, 0);
xas                23 tools/testing/radix-tree/iteration_check_2.c 		xas_for_each_marked(&xas, entry, ULONG_MAX, XA_MARK_0)
xas                26 tools/testing/radix-tree/iteration_check_2.c 		assert(xas.xa_index >= 100);
xas                18 tools/testing/radix-tree/multiorder.c 	XA_STATE_ORDER(xas, xa, index, order);
xas                22 tools/testing/radix-tree/multiorder.c 		xas_lock(&xas);
xas                23 tools/testing/radix-tree/multiorder.c 		xas_store(&xas, item);
xas                24 tools/testing/radix-tree/multiorder.c 		xas_unlock(&xas);
xas                25 tools/testing/radix-tree/multiorder.c 	} while (xas_nomem(&xas, GFP_KERNEL));
xas                27 tools/testing/radix-tree/multiorder.c 	if (!xas_error(&xas))
xas                31 tools/testing/radix-tree/multiorder.c 	return xas_error(&xas);
xas                36 tools/testing/radix-tree/multiorder.c 	XA_STATE(xas, xa, 0);
xas                56 tools/testing/radix-tree/multiorder.c 		xas_set(&xas, j);
xas                57 tools/testing/radix-tree/multiorder.c 		xas_for_each(&xas, item, ULONG_MAX) {
xas                62 tools/testing/radix-tree/multiorder.c 			assert((xas.xa_index | mask) == (index[i] | mask));
xas                63 tools/testing/radix-tree/multiorder.c 			assert(xas.xa_node->shift == shift);
xas                76 tools/testing/radix-tree/multiorder.c 	XA_STATE(xas, xa, 0);
xas               107 tools/testing/radix-tree/multiorder.c 		xas_set(&xas, j);
xas               108 tools/testing/radix-tree/multiorder.c 		xas_for_each_marked(&xas, item, ULONG_MAX, XA_MARK_1) {
xas               114 tools/testing/radix-tree/multiorder.c 			assert((xas.xa_index | mask) == (tag_index[i] | mask));
xas               135 tools/testing/radix-tree/multiorder.c 		xas_set(&xas, j);
xas               136 tools/testing/radix-tree/multiorder.c 		xas_for_each_marked(&xas, item, ULONG_MAX, XA_MARK_2) {
xas               141 tools/testing/radix-tree/multiorder.c 			assert((xas.xa_index | mask) == (tag_index[i] | mask));
xas               152 tools/testing/radix-tree/multiorder.c 	xas_set(&xas, 0);
xas               153 tools/testing/radix-tree/multiorder.c 	xas_for_each_marked(&xas, item, ULONG_MAX, XA_MARK_0) {
xas               154 tools/testing/radix-tree/multiorder.c 		assert(xas.xa_index == tag_index[i]);
xas               182 tools/testing/radix-tree/multiorder.c 	XA_STATE(xas, ptr, 0);
xas               187 tools/testing/radix-tree/multiorder.c 		xas_for_each(&xas, item, ULONG_MAX) {
xas               188 tools/testing/radix-tree/multiorder.c 			if (xas_retry(&xas, item))
xas               191 tools/testing/radix-tree/multiorder.c 			item_sanity(item, xas.xa_index);
xas                82 tools/testing/radix-tree/regression1.c 	XA_STATE(xas, &mt_tree, start);
xas                87 tools/testing/radix-tree/regression1.c 	xas_for_each(&xas, page, ULONG_MAX) {
xas                88 tools/testing/radix-tree/regression1.c 		if (xas_retry(&xas, page))
xas                99 tools/testing/radix-tree/regression1.c 		if (unlikely(page != xas_reload(&xas)))
xas               108 tools/testing/radix-tree/regression1.c 		xas_reset(&xas);
xas               176 tools/testing/radix-tree/test.c 	XA_STATE(xas, xa, start);
xas               183 tools/testing/radix-tree/test.c 	xas_lock_irq(&xas);
xas               184 tools/testing/radix-tree/test.c 	xas_for_each_marked(&xas, item, end, iftag) {
xas               185 tools/testing/radix-tree/test.c 		xas_set_mark(&xas, thentag);
xas               189 tools/testing/radix-tree/test.c 		xas_pause(&xas);
xas               190 tools/testing/radix-tree/test.c 		xas_unlock_irq(&xas);
xas               192 tools/testing/radix-tree/test.c 		xas_lock_irq(&xas);
xas               194 tools/testing/radix-tree/test.c 	xas_unlock_irq(&xas);
xas               257 tools/testing/radix-tree/test.c 	XA_STATE(xas, xa, 0);
xas               260 tools/testing/radix-tree/test.c 	xas_for_each(&xas, entry, ULONG_MAX) {
xas               262 tools/testing/radix-tree/test.c 			item_free(entry, xas.xa_index);
xas               264 tools/testing/radix-tree/test.c 		xas_store(&xas, NULL);