Searched refs:xa_state (Results 1 – 10 of 10) sorted by relevance
| /linux/Documentation/translations/zh_CN/core-api/ |
| H A D | xarray.rst | 256 高级API是基于xa_state的。这是一个不透明的数据结构,你使用XA_STATE()宏在堆栈中声明。这个宏初始化了 257 xa_state,准备开始在XArray上移动。它被用作一个游标来保持在XArray中的位置,并让你把各种操作组合在一 258 起,而不必每次都从头开始。xa_state的内容受rcu_read_lock()或xas_lock()的保护。如果需要删除保护状态 261 xa_state也被用来存储错误(store errors)。你可以调用xas_error()来检索错误。所有的操作在进行之前都 262 会检查xa_state是否处于错误状态,所以你没有必要在每次调用之后检查错误;你可以连续进行多次调用,只在 266 如果xa_state持有 ``ENOMEM`` 错误,调用xas_nomem()将尝试使用指定的gfp标志分配更多的内存,并将其缓 267 存在xa_state中供下一次尝试。这个想法是,你拿着xa_lock,尝试操作,然后放弃锁。该操作试图在持有锁的情 287 - 一个XArray节点。 在使用多索引xa_state时可能是可见的。 309 xa_state中设置ENOMEM。 315 xas_load()会尽可能地将xa_state移动到该条目附近。如果你知道xa_state已经移动到了该条目,并且需要检查 [all …]
|
| /linux/include/linux/ |
| H A D | xarray.h | 1354 struct xa_state { struct 1397 struct xa_state name = __XA_STATE(array, index, 0, 0) 1411 struct xa_state name = __XA_STATE(array, \ 1435 static inline int xas_error(const struct xa_state *xas) in xas_error() 1449 static inline void xas_set_err(struct xa_state *xas, long err) in xas_set_err() 1460 static inline bool xas_invalid(const struct xa_state *xas) in xas_invalid() 1471 static inline bool xas_valid(const struct xa_state *xas) in xas_valid() 1482 static inline bool xas_is_node(const struct xa_state *xas) in xas_is_node() 1515 static inline void xas_reset(struct xa_state *xas) in xas_reset() 1532 static inline bool xas_retry(struct xa_state *xas, const void *entry) in xas_retry() [all …]
|
| /linux/lib/ |
| H A D | xarray.c | 38 static inline void xas_lock_type(struct xa_state *xas, unsigned int lock_type) in xas_lock_type() 48 static inline void xas_unlock_type(struct xa_state *xas, unsigned int lock_type) in xas_unlock_type() 126 static void xas_squash_marks(const struct xa_state *xas) in xas_squash_marks() 150 static void xas_set_offset(struct xa_state *xas) in xas_set_offset() 156 static void xas_move_index(struct xa_state *xas, unsigned long offset) in xas_move_index() 163 static void xas_next_offset(struct xa_state *xas) in xas_next_offset() 169 static void *set_bounds(struct xa_state *xas) in set_bounds() 182 static void *xas_start(struct xa_state *xas) in xas_start() 204 static __always_inline void *xas_descend(struct xa_state *xas, in xas_descend() 237 void *xas_load(struct xa_state *xas) in xas_load() [all …]
|
| /linux/arch/arm64/kernel/ |
| H A D | hibernate.c | 243 XA_STATE(xa_state, &mte_pages, 0); in swsusp_mte_free_storage() 247 xas_for_each(&xa_state, tags, ULONG_MAX) { in swsusp_mte_free_storage() 299 XA_STATE(xa_state, &mte_pages, 0); in swsusp_mte_restore_tags() 304 xas_for_each(&xa_state, tags, ULONG_MAX) { in swsusp_mte_restore_tags() 305 unsigned long pfn = xa_state.xa_index; in swsusp_mte_restore_tags()
|
| /linux/fs/ |
| H A D | dax.c | 147 static wait_queue_head_t *dax_entry_waitqueue(struct xa_state *xas, in dax_entry_waitqueue() 185 static void dax_wake_entry(struct xa_state *xas, void *entry, in dax_wake_entry() 213 static void *get_next_unlocked_entry(struct xa_state *xas, unsigned int order) in get_next_unlocked_entry() 247 static void *wait_entry_unlocked_exclusive(struct xa_state *xas, void *entry) in wait_entry_unlocked_exclusive() 278 static void wait_entry_unlocked(struct xa_state *xas, void *entry) in wait_entry_unlocked() 299 static void put_unlocked_entry(struct xa_state *xas, void *entry, in put_unlocked_entry() 311 static void dax_unlock_entry(struct xa_state *xas, void *entry) in dax_unlock_entry() 327 static void *dax_lock_entry(struct xa_state *xas, void *entry) in dax_lock_entry() 650 static void *grab_mapping_entry(struct xa_state *xas, in grab_mapping_entry() 1042 static void *dax_insert_entry(struct xa_state *xas, struct vm_fault *vmf, in dax_insert_entry() [all …]
|
| /linux/fs/cachefiles/ |
| H A D | ondemand.c | 375 static struct cachefiles_req *cachefiles_ondemand_select_req(struct xa_state *xas, in cachefiles_ondemand_select_req() 400 struct xa_state *xas, int err) in cachefiles_ondemand_finish_req()
|
| /linux/mm/ |
| H A D | memfd.c | 38 static void memfd_tag_pins(struct xa_state *xas) in memfd_tag_pins()
|
| H A D | filemap.c | 2055 static inline struct folio *find_get_entry(struct xa_state *xas, pgoff_t max, in find_get_entry() 3141 static inline loff_t folio_seek_hole_data(struct xa_state *xas, in folio_seek_hole_data() 3174 static inline size_t seek_folio_size(struct xa_state *xas, struct folio *folio) in seek_folio_size() 3696 static struct folio *next_uptodate_folio(struct xa_state *xas, in next_uptodate_folio()
|
| H A D | huge_memory.c | 3625 struct page *split_at, struct xa_state *xas, in __split_unmapped_folio() 3771 struct page *split_at, struct xa_state *xas, in __folio_freeze_and_split_unmapped()
|
| /linux/fs/btrfs/ |
| H A D | extent_io.c | 2098 static inline struct extent_buffer *find_get_eb(struct xa_state *xas, unsigned long max, in find_get_eb()
|