mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
maple_tree: don't pass end to mas_wr_append()
Figure out the end internally. This is necessary for future cleanups. Link: https://lkml.kernel.org/r/20260130205935.2559335-30-Liam.Howlett@oracle.com Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com> Cc: Alice Ryhl <aliceryhl@google.com> Cc: Andrew Ballance <andrewjballance@gmail.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Christian Kujau <lists@nerdbynature.de> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Cc: Matthew Wilcox (Oracle) <willy@infradead.org> Cc: SeongJae Park <sj@kernel.org> Cc: Sidhartha Kumar <sidhartha.kumar@oracle.com> Cc: Suren Baghdasaryan <surenb@google.com> Cc: Vlastimil Babka <vbabka@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
committed by
Andrew Morton
parent
2969241fa2
commit
b82f4c811e
@@ -3309,18 +3309,17 @@ static inline unsigned char mas_wr_new_end(struct ma_wr_state *wr_mas)
|
||||
/*
|
||||
* mas_wr_append: Attempt to append
|
||||
* @wr_mas: the maple write state
|
||||
* @new_end: The end of the node after the modification
|
||||
*
|
||||
* This is currently unsafe in rcu mode since the end of the node may be cached
|
||||
* by readers while the node contents may be updated which could result in
|
||||
* inaccurate information.
|
||||
*/
|
||||
static inline void mas_wr_append(struct ma_wr_state *wr_mas,
|
||||
unsigned char new_end)
|
||||
static inline void mas_wr_append(struct ma_wr_state *wr_mas)
|
||||
{
|
||||
struct ma_state *mas = wr_mas->mas;
|
||||
void __rcu **slots;
|
||||
unsigned char end = mas->end;
|
||||
unsigned char new_end = mas_wr_new_end(wr_mas);
|
||||
|
||||
if (new_end < mt_pivots[wr_mas->type]) {
|
||||
wr_mas->pivots[new_end] = wr_mas->pivots[end];
|
||||
@@ -3513,7 +3512,7 @@ static inline void mas_wr_store_entry(struct ma_wr_state *wr_mas)
|
||||
mas_update_gap(mas);
|
||||
break;
|
||||
case wr_append:
|
||||
mas_wr_append(wr_mas, new_end);
|
||||
mas_wr_append(wr_mas);
|
||||
break;
|
||||
case wr_slot_store:
|
||||
mas_wr_slot_store(wr_mas);
|
||||
|
||||
Reference in New Issue
Block a user