aboutsummaryrefslogtreecommitdiffstats
path: root/lib/maple_tree.c
AgeCommit message (Expand)AuthorFilesLines
2025-11-09maple_tree: fix tracepoint string pointersMartin Kaiser1-14/+16
2025-10-02Merge tag 'mm-stable-2025-10-01-19-00' of git://git.kernel.org/pub/scm/linux/...Linus Torvalds1-6/+6
2025-09-29maple_tree: Convert forking to use the sheaf interfaceLiam R. Howlett1-24/+23
2025-09-29maple_tree: Add single node allocation support to maple stateLiam R. Howlett1-6/+41
2025-09-29maple_tree: Prefilled sheaf conversion and testingLiam R. Howlett1-264/+62
2025-09-29maple_tree: Replace mt_free_one() with kfree()Pedro Falcato1-9/+4
2025-09-29maple_tree: Use kfree_rcu in ma_free_rcuPedro Falcato1-10/+3
2025-09-29maple_tree: use percpu sheaves for maple_node_cacheVlastimil Babka1-2/+7
2025-09-29maple_tree: Drop bulk insert supportLiam R. Howlett1-266/+4
2025-09-29maple_tree: remove redundant __GFP_NOWARNQianfeng Rong1-2/+2
2025-09-13maple_tree: fix MAPLE_PARENT_RANGE32 and parent pointer docsSidhartha Kumar1-6/+6
2025-07-13maple tree: add some commentsDev Jain1-1/+7
2025-07-12Merge branch 'mm-hotfixes-stable' into mm-stable to pick up changes whichAndrew Morton1-0/+1
2025-07-09maple_tree: fix status setup on restore to activeLiam R. Howlett1-7/+18
2025-07-09maple tree: use goto label to simplify codeDev Jain1-5/+2
2025-07-09maple_tree: fix mt_destroy_walk() on root leaf nodeWei Yang1-0/+1
2025-06-19maple_tree: fix MA_STATE_PREALLOC flag in mas_preallocate()Liam R. Howlett1-1/+3
2025-05-11maple_tree: reorder mas->store_type case statementsSidhartha Kumar1-26/+25
2025-05-11maple_tree: add sufficient heightSidhartha Kumar1-3/+16
2025-05-11maple_tree: break on convergence in mas_spanning_rebalance()Sidhartha Kumar1-3/+13
2025-05-11maple_tree: use vacant nodes to reduce worst case allocationsSidhartha Kumar1-4/+9
2025-05-11maple_tree: use height and depth consistentlySidhartha Kumar1-40/+44
2025-05-11maple_tree: convert mas_prealloc_calc() to take in a maple write stateSidhartha Kumar1-8/+8
2025-03-16maple_tree: remove a BUG_ON() in mas_alloc_nodes()Petr Tesarik1-1/+0
2025-03-16maple_tree: use ma_dead_node() in mte_dead_node()I Hsin Cheng1-5/+2
2025-03-16maple_tree: correct comment for mas_start()I Hsin Cheng1-1/+1
2025-01-13maple_tree: only root node could be deficientWei Yang1-1/+1
2025-01-13maple_tree: simplify split calculationWei Yang1-17/+6
2025-01-13maple_tree: we don't set offset to MAPLE_NODE_SLOTS on errorWei Yang1-5/+2
2025-01-13maple_tree: not possible to be a root node after loopWei Yang1-4/+1
2025-01-13maple_tree: index has been checked to be smaller than pivotWei Yang1-7/+6
2025-01-13maple_tree: use mas_next_slot() directlyWei Yang1-24/+1
2024-12-30maple_tree: reload mas before the second call for mas_empty_areaYang Erkun1-0/+1
2024-11-11maple_tree: refine mas_store_root() on storing NULLWei Yang1-1/+12
2024-11-11maple_tree: not necessary to check index/last againWei Yang1-1/+3
2024-11-11maple_tree: the return value of mas_root_expand() is not usedWei Yang1-2/+2
2024-11-11maple_tree: print empty for an empty tree on mt_dump()Wei Yang1-3/+5
2024-11-06maple_tree: remove sanity check from mas_wr_slot_store()Wei Yang1-3/+2
2024-11-06maple_tree: calculate new_end when neededWei Yang1-1/+1
2024-11-06maple_tree: simplify mas_push_node()Wei Yang1-9/+7
2024-11-06maple_tree: total is not changed for nomem_one caseWei Yang1-2/+1
2024-11-06maple_tree: clear request_count for new allocated oneWei Yang1-1/+1
2024-11-06maple_tree: root node could be handled by !p_slot tooWei Yang1-3/+1
2024-11-06maple_tree: fix alloc node fail issueJiazi Li1-1/+4
2024-11-06maple_tree: refactor mas_wr_store_type()Sidhartha Kumar1-47/+25
2024-11-06maple_tree: do not hash pointers on dump in debug modeLorenzo Stoakes1-41/+59
2024-11-05maple_tree: memset maple_big_node as a wholeWei Yang1-4/+1
2024-11-05maple_tree: remove maple_big_node.parentWei Yang1-1/+0
2024-11-05maple_tree: goto complete directly on a pivot of 0Wei Yang1-1/+1
2024-11-05maple_tree: i is always less than or equal to mas_endWei Yang1-2/+1
2024-10-17maple_tree: correct tree corruption on spanning storeLorenzo Stoakes1-6/+6
2024-10-17maple_tree: check for MA_STATE_BULK on setting wr_rebalanceSidhartha Kumar1-1/+1
2024-09-21Merge tag 'mm-stable-2024-09-20-02-31' of git://git.kernel.org/pub/scm/linux/...Linus Torvalds1-379/+426
2024-09-09maple_tree: mark three functions as __maybe_unusedLiam R. Howlett1-3/+3
2024-09-09maple_tree: cleanup function descriptionsWei Yang1-58/+47
2024-09-09maple_tree: dump error message based on formatWei Yang1-2/+8
2024-09-09maple_tree: arange64 node is not a leaf nodeWei Yang1-5/+1
2024-09-01maple_tree: make write helper functions voidSidhartha Kumar1-31/+16
2024-09-01maple_tree: remove unneeded mas_wr_walk() in mas_store_prealloc()Sidhartha Kumar1-5/+13
2024-09-01maple_tree: remove repeated sanity checks from write helper functionsSidhartha Kumar1-15/+2
2024-09-01maple_tree: remove node allocations from various write helper functionsSidhartha Kumar1-27/+0
2024-09-01maple_tree: have mas_store() allocate nodes if neededSidhartha Kumar1-2/+17
2024-09-01maple_tree: remove mas_wr_modify()Sidhartha Kumar1-38/+0
2024-09-01maple_tree: simplify mas_commit_b_node()Sidhartha Kumar1-57/+7
2024-09-01maple_tree: convert mas_insert() to preallocate nodesSidhartha Kumar1-12/+10
2024-09-01maple_tree: use store type in mas_wr_store_entry()Sidhartha Kumar1-38/+52
2024-09-01maple_tree: print store type in mas_dump()Sidhartha Kumar1-0/+34
2024-09-01maple_tree: use mas_store_gfp() in mtree_store_range()Sidhartha Kumar1-10/+1
2024-09-01maple_tree: preallocate nodes in mas_erase()Sidhartha Kumar1-2/+6
2024-09-01maple_tree: remove mas_destroy() from mas_nomem()Sidhartha Kumar1-13/+24
2024-09-01maple_tree: introduce mas_wr_store_type()Sidhartha Kumar1-60/+157
2024-09-01maple_tree: move up mas_wr_store_setup() and mas_wr_prealloc_setup()Sidhartha Kumar1-48/+48
2024-09-01maple_tree: introduce mas_wr_prealloc_setup()Sidhartha Kumar1-2/+8
2024-09-01maple_tree: fix comment typo with corresponding maple_statusWei Yang1-1/+1
2024-09-01maple_tree: fix comment typo of ma_rootWei Yang1-1/+1
2024-09-01maple_tree: add test to replicate low memory race conditionsSidhartha Kumar1-0/+13
2024-09-01maple_tree: reset mas->index and mas->last on write retriesSidhartha Kumar1-4/+12
2024-09-01maple_tree: remove rcu_read_lock() from mt_validate()Liam R. Howlett1-5/+2
2024-07-03maple_tree: modified return type of mas_wr_store_entry()JaeJoon Jung1-9/+6
2024-05-05maple_tree: fix mas_empty_area_rev() null pointer dereferenceLiam R. Howlett1-8/+8
2024-03-14Merge tag 'mm-stable-2024-03-13-20-04' of git://git.kernel.org/pub/scm/linux/...Linus Torvalds1-4/+2
2024-02-22maple_tree: avoid duplicate variable init in mast_spanning_rebalance()Lukas Bulwahn1-2/+0
2024-02-21maple_tree: fix comment describing mas_node_count_gfp()Sidhartha Kumar1-2/+2
2024-02-21maple_tree: Add mtree_alloc_cyclic()Chuck Lever1-0/+93
2023-12-20maple_tree: avoid checking other gaps after getting the largest gapPeng Zhang1-0/+3
2023-12-20maple_tree: fix typos/spellos etcRandy Dunlap1-4/+4
2023-12-20lib/maple_tree.c: fix build error due to hotfix alterationAndrew Morton1-1/+1
2023-12-20sync mm-stable with mm-hotfixes-stable to pick up depended-upon changesAndrew Morton1-0/+11
2023-12-20maple_tree: do not preallocate nodes for slot storesSidhartha Kumar1-0/+11
2023-12-12maple_tree: change return type of mas_split_final_node as void.Levi Yun1-2/+1
2023-12-12maple_tree: simplify mas_leaf_set_meta()Peng Zhang1-18/+4
2023-12-12maple_tree: delete one of the two identical checksPeng Zhang1-3/+0
2023-12-12maple_tree: remove an unused parameter for ma_meta_end()Peng Zhang1-6/+4
2023-12-12maple_tree: avoid ascending when mas->min is also the parent's minimumPeng Zhang1-3/+5
2023-12-12maple_tree: move the check forward to avoid static check warningPeng Zhang1-1/+1
2023-12-12maple_tree: remove unused functionJiapeng Chong1-29/+0
2023-12-12maple_tree: mtree_range_walk() clean upLiam R. Howlett1-15/+12
2023-12-12maple_tree: don't find node end in mtree_lookup_walk()Liam R. Howlett1-9/+3
2023-12-12maple_tree: use maple state end for write operationsLiam R. Howlett1-22/+24
2023-12-12maple_tree: remove mas_searchable()Liam R. Howlett1-50/+16
2023-12-12maple_tree: separate ma_state node from statusLiam R. Howlett1-183/+276
2023-12-12maple_tree: clean up inlines for some functionsLiam R. Howlett1-39/+39
2023-12-12maple_tree: use cached node end in mas_destroy()Liam R. Howlett1-1/+1
2023-12-12maple_tree: use cached node end in mas_next()Liam R. Howlett1-6/+8
2023-12-12maple_tree: add end of node tracking to the maple stateLiam R. Howlett1-0/+7
2023-12-12maple_tree: make mas_erase() more robustLiam R. Howlett1-1/+1
2023-12-12maple_tree: remove unnecessary default labels from switch statementsLiam R. Howlett1-7/+2
2023-12-10maple_tree: preserve the tree attributes when destroying maple treePeng Zhang1-1/+1
2023-12-10maple_tree: introduce interfaces __mt_dup() and mtree_dup()Peng Zhang1-0/+274
2023-12-10maple_tree: add mt_free_one() and mt_attr() helpersPeng Zhang1-1/+11
2023-10-18maple_tree: add GFP_KERNEL to allocations in mas_expected_entries()Liam R. Howlett1-1/+1
2023-09-29maple_tree: add MAS_UNDERFLOW and MAS_OVERFLOW statesLiam R. Howlett1-58/+163
2023-08-24maple_tree: clean up mas_wr_append()Liam R. Howlett1-14/+20
2023-08-24merge mm-hotfixes-stable into mm-stable to pick up depended-upon changesAndrew Morton1-0/+7
2023-08-24maple_tree: disable mas_wr_append() when other readers are possibleLiam R. Howlett1-0/+7
2023-08-21maple_tree: replace data before marking dead in split and spanning storeLiam R. Howlett1-325/+168
2023-08-21maple_tree: change mas_adopt_children() parent usageLiam R. Howlett1-1/+1
2023-08-21maple_tree: introduce mas_tree_parent() definitionLiam R. Howlett1-8/+5
2023-08-21maple_tree: introduce mas_put_in_tree()Liam R. Howlett1-46/+27
2023-08-21maple_tree: reorder replacement of nodes to avoid live lockLiam R. Howlett1-10/+46
2023-08-21maple_tree: add hex output to maple_arange64 dumpLiam R. Howlett1-4/+20
2023-08-18maple_tree: reduce resets during store setupLiam R. Howlett1-11/+26
2023-08-18maple_tree: refine mas_preallocate() node calculationsLiam R. Howlett1-1/+43
2023-08-18maple_tree: move mas_wr_end_piv() below mas_wr_extend_null()Liam R. Howlett1-16/+15
2023-08-18maple_tree: adjust node allocation on mas_rebalance()Liam R. Howlett1-1/+1
2023-08-18maple_tree: re-introduce entry to mas_preallocate() argumentsLiam R. Howlett1-1/+2
2023-08-18maple_tree: Be more strict about lockingLiam R. Howlett1-2/+8
2023-08-18maple_tree: mtree_insert: fix typo in kernel-doc description of GFP flagsMike Rapoport (IBM)1-1/+1
2023-08-18maple_tree: mtree_insert*: fix typo in kernel-doc descriptionMike Rapoport (IBM)1-2/+2
2023-08-18maple_tree: drop mas_first_entry()Peng Zhang1-72/+0
2023-08-18maple_tree: replace mas_logical_pivot() with mas_safe_pivot()Peng Zhang1-30/+3
2023-08-18maple_tree: update mt_validate()Peng Zhang1-10/+9
2023-08-18maple_tree: make mas_validate_limits() check root node and node limitPeng Zhang1-16/+14
2023-08-18maple_tree: fix mas_validate_child_slot() to check last missed slotPeng Zhang1-4/+8
2023-08-18maple_tree: make mas_validate_gaps() to check metadataPeng Zhang1-36/+42
2023-08-18maple_tree: don't use MAPLE_ARANGE64_META_MAX to indicate no gapPeng Zhang1-11/+2
2023-08-18maple_tree: add a fast path case in mas_wr_slot_store()Peng Zhang1-12/+24
2023-08-18maple_tree: optimize mas_wr_append(), also improve duplicating VMAsPeng Zhang1-11/+22
2023-08-18maple_tree: fix a few documentation issuesThomas Gleixner1-5/+21
2023-07-17maple_tree: set the node limit when creating a new root nodePeng Zhang1-1/+2
2023-06-09maple_tree: simplify and clean up mas_wr_node_store()Peng Zhang1-61/+26
2023-06-09maple_tree: rework mas_wr_slot_store() to be cleaner and more efficient.Peng Zhang1-34/+19
2023-06-09maple_tree: add comments and some minor cleanups to mas_wr_append()Peng Zhang1-24/+23
2023-06-09maple_tree: add mas_wr_new_end() to calculate new_end accuratelyPeng Zhang1-11/+23
2023-06-09maple_tree: make the code symmetrical in mas_wr_extend_null()Peng Zhang1-12/+14
2023-06-09maple_tree: simplify mas_is_span_wr()Peng Zhang1-23/+11
2023-06-09maple_tree: fix the arguments to __must_hold()Peng Zhang1-3/+3
2023-06-09maple_tree: drop mas_{rev_}alloc() and mas_fill_gap()Peng Zhang1-108/+0
2023-06-09maple_tree: rework mtree_alloc_{range,rrange}()Peng Zhang1-25/+32
2023-06-09maple_tree: clear up index and last setting in single entry treeLiam R. Howlett1-10/+11
2023-06-09maple_tree: add mas_prev_range() and mas_find_range_rev interfaceLiam R. Howlett1-39/+122
2023-06-09maple_tree: introduce mas_prev_slot() interfaceLiam R. Howlett1-142/+90
2023-06-09maple_tree: relocate mas_rewalk() and mas_rewalk_if_dead()Liam R. Howlett1-19/+19
2023-06-09maple_tree: add mas_next_range() and mas_find_range() interfacesLiam R. Howlett1-50/+122
2023-06-09maple_tree: introduce mas_next_slot() interfaceLiam R. Howlett1-125/+104
2023-06-09maple_tree: revise limit checks in mas_empty_area{_rev}()Liam R. Howlett1-7/+13
2023-06-09maple_tree: try harder to keep active node with mas_prev()Liam R. Howlett1-42/+83
2023-06-09maple_tree: try harder to keep active node after mas_next()Liam R. Howlett1-42/+47
2023-06-09maple_tree: mas_start() reset depth on dead nodeLiam R. Howlett1-1/+1
2023-06-09maple_tree: remove unnecessary check from mas_destroy()Liam R. Howlett1-3/+1
2023-06-09maple_tree: return error on mte_pivots() out of rangeLiam R. Howlett1-11/+14
2023-06-09maple_tree: use MAS_BUG_ON() prior to calling mas_meta_gap()Liam R. Howlett1-2/+2
2023-06-09maple_tree: use MAS_WR_BUG_ON() in mas_store_prealloc()Liam R. Howlett1-1/+1
2023-06-09maple_tree: use MAS_BUG_ON() from mas_topiary_range()Liam R. Howlett1-1/+2
2023-06-09maple_tree: use MAS_BUG_ON() in mas_set_height()Liam R. Howlett1-1/+1
2023-06-09maple_tree: use MAS_BUG_ON() when setting a leaf node as a parentLiam R. Howlett1-13/+13
2023-06-09maple_tree: convert debug code to use MT_WARN_ON() and MAS_WARN_ON()Liam R. Howlett1-16/+14
2023-06-09maple_tree: convert BUG_ON() to MT_BUG_ON()Liam R. Howlett1-1/+1
2023-06-09maple_tree: add debug BUG_ON and WARN_ON variantsLiam R. Howlett1-2/+32
2023-06-09maple_tree: add format option to mt_dump()Liam R. Howlett1-29/+58
2023-06-09maple_tree: clean up mas_dfs_postorder()Liam R. Howlett1-5/+2
2023-06-09maple_tree: avoid unnecessary ascendingLiam R. Howlett1-3/+8
2023-06-09maple_tree: clean up mas_parent_enum() and rename to mas_parent_type()Liam R. Howlett1-28/+22
2023-06-09maple_tree: fix static analyser cppcheck issueLiam R. Howlett1-2/+3
2023-06-09maple_tree: fix potential out-of-bounds access in mas_wr_end_piv()Peng Zhang1-5/+6
2023-05-17maple_tree: make maple state reusable after mas_empty_area()Peng Zhang1-9/+3
2023-04-21maple_tree: fix allocation in mas_sparse_area()Peng Zhang1-21/+20
2023-04-18maple_tree: use correct variable type in sizeofPeng Zhang1-1/+1
2023-04-18maple_tree: simplify mas_wr_node_walk()Peng Zhang1-29/+5
2023-04-18sync mm-stable with mm-hotfixes-stable to pick up depended-upon upstream changesAndrew Morton1-23/+24
2023-04-18maple_tree: fix mas_empty_area() searchLiam R. Howlett1-9/+11
2023-04-18maple_tree: make maple state reusable after mas_empty_area_rev()Liam R. Howlett1-14/+13
2023-04-16sync mm-stable with mm-hotfixes-stable to pick up depended-upon upstream changesAndrew Morton1-109/+197
2023-04-16maple_tree: fix a potential memory leak, OOB access, or other unpredictable bugPeng Zhang1-12/+7
2023-04-05maple_tree: fix a potential concurrency bug in RCU modePeng Zhang1-2/+1
2023-04-05maple_tree: fix get wrong data_end in mtree_lookup_walk()Peng Zhang1-10/+5
2023-04-05maple_tree: add RCU lock checking to rcu callback functionsLiam R. Howlett1-92/+96
2023-04-05maple_tree: add smp_rmb() to dead node detectionLiam R. Howlett1-2/+6
2023-04-05maple_tree: fix write memory barrier of nodes once dead for RCU modeLiam R. Howlett1-2/+5
2023-04-05maple_tree: remove extra smp_wmb() from mas_dead_leaves()Liam Howlett1-1/+0
2023-04-05maple_tree: fix freeing of nodes in rcu modeLiam Howlett1-11/+62
2023-04-05maple_tree: detect dead nodes in mas_start()Liam Howlett1-0/+4
2023-04-05maple_tree: be more cautious about dead nodesLiam Howlett1-9/+43
2023-03-28maple_tree: export symbol mas_preallocate()Danilo Krummrich1-0/+1
2023-03-23maple_tree: fix mas_skip_node() end slot detectionLiam R. Howlett1-19/+5
2023-02-16maple_tree: reduce stack usage with gcc-9 and earlierArnd Bergmann1-2/+9
2023-02-09maple_tree: fix mas_prev() and mas_find() state handlingLiam R. Howlett1-1/+5
2023-02-09maple_tree: fix handle of invalidated state in mas_wr_store_setup()Liam R. Howlett1-0/+3
2023-02-09maple_tree: reduce user error potentialLiam R. Howlett1-0/+10
2023-02-09maple_tree: fix potential rcu issueLiam R. Howlett1-1/+1