[PATCH v4 0/2] Arc methods for linked list

From: Alice Ryhl
Date: Tue Apr 02 2024 - 09:10:45 EST


This patchset contains two useful methods for the Arc type. They will be
used in my Rust linked list implementation [1], which Rust Binder uses. See
the Rust Binder RFC [2] for more information.

Link: https://lore.kernel.org/rust-for-linux/20240402-linked-list-v1-0-b1c59ba7ae3b@xxxxxxxxxx/ [1]
Link: https://lore.kernel.org/rust-for-linux/20231101-rust-binder-v1-0-08ba9197f637@xxxxxxxxxx/ [2]
Signed-off-by: Alice Ryhl <aliceryhl@xxxxxxxxxx>
---
Changes in v4:
- Add Boqun's example.
- Fix rustfmt issue.
- Add Reviewed-by tags.
- Link to v3: https://lore.kernel.org/r/20240311-arc-for-list-v3-0-cba1883c62eb@xxxxxxxxxx

Changes in v3:
- No changes to `ArcBorrow::from_raw`, or than adding a Reviewed-by.
- Update SAFETY comment on `refcount_dec_and_test` call.
- Simplify the creation of the `UniqueArc` in `into_unique_or_drop`.
- Link to v2: https://lore.kernel.org/r/20240228-arc-for-list-v2-0-ae93201426b4@xxxxxxxxxx

Changes in v2:
- Move raw_to_inner_ptr to ArcInner and rename to container_of.
- Reword safety conditions for raw_to_inner_ptr to match its users.
- Link to v1: https://lore.kernel.org/r/20240219-arc-for-list-v1-0-d98cd92c760b@xxxxxxxxxx

---
Alice Ryhl (2):
rust: sync: add `ArcBorrow::from_raw`
rust: sync: add `Arc::into_unique_or_drop`

rust/kernel/sync/arc.rs | 138 +++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 120 insertions(+), 18 deletions(-)
---
base-commit: 4cece764965020c22cff7665b18a012006359095
change-id: 20240209-arc-for-list-a2c126c2ad5c

Best regards,
--
Alice Ryhl <aliceryhl@xxxxxxxxxx>