All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Devers <dev.json2@gmail.com>
To: Miguel Ojeda <ojeda@kernel.org>, Alex Gaynor <alex.gaynor@gmail.com>
Cc: "Boqun Feng" <boqun.feng@gmail.com>,
	"Gary Guo" <gary@garyguo.net>,
	"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
	"Benno Lossin" <benno.lossin@proton.me>,
	"Andreas Hindborg" <a.hindborg@kernel.org>,
	"Alice Ryhl" <aliceryhl@google.com>,
	"Trevor Gross" <tmgross@umich.edu>,
	rust-for-linux@vger.kernel.org,
	"Jason Devers" <dev.json2@gmail.com>,
	"Alice Ryhl" <alice@ryhl.io>
Subject: [PATCH] rust: sync: add #[must_use] to Lock::try_lock
Date: Sun,  8 Dec 2024 13:48:34 -0500	[thread overview]
Message-ID: <20241208184834.50212-1-dev.json2@gmail.com> (raw)

The `Lock::try_lock` function returns an `Option<Guard<...>>`, but it
currently does not issue a warning if the return value is unused. This
could result in the lock being unlocked immediately, which is unsafe
and unintended. This patch adds a `#[must_use]` annotation to
`Lock::try_lock` to prevent this.

Suggested-by: Alice Ryhl <alice@ryhl.io>
Link: https://github.com/Rust-for-Linux/linux/issues/1133
Signed-off-by: Jason Devers <dev.json2@gmail.com>
---
 rust/kernel/sync/lock.rs | 1 +
 1 file changed, 1 insertion(+)

diff --git a/rust/kernel/sync/lock.rs b/rust/kernel/sync/lock.rs
index 41dcddac69e2..f6a5e83ff685 100644
--- a/rust/kernel/sync/lock.rs
+++ b/rust/kernel/sync/lock.rs
@@ -147,6 +147,7 @@ pub fn lock(&self) -> Guard<'_, T, B> {
     /// Tries to acquire the lock.
     ///
     /// Returns a guard that can be used to access the data protected by the lock if successful.
+    #[must_use = "if unused, the lock will be immediately unlocked"]
     pub fn try_lock(&self) -> Option<Guard<'_, T, B>> {
         // SAFETY: The constructor of the type calls `init`, so the existence of the object proves
         // that `init` was called.
-- 
2.44.2


             reply	other threads:[~2024-12-08 18:49 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-08 18:48 Jason Devers [this message]
2024-12-08 19:11 ` [PATCH] rust: sync: add #[must_use] to Lock::try_lock Boqun Feng
     [not found]   ` <CAOJvc-bi6ym6ZMAbDSh4H_L6LQXoTs8oNY07SZ1crzXxY9BodQ@mail.gmail.com>
2024-12-08 19:43     ` jos
2024-12-08 20:02     ` Boqun Feng
2024-12-08 20:50       ` Jason Devers
2024-12-08 21:57         ` Tamir Duberstein
2024-12-08 22:09           ` jos
2024-12-08 22:26             ` Jason Devers
2024-12-09 11:57               ` Miguel Ojeda
2024-12-09 17:09                 ` jos
2024-12-11  2:05             ` [PATCH v4] " Jason Devers
2024-12-11  9:17               ` Alice Ryhl
2024-12-11  9:45               ` Miguel Ojeda
2024-12-11 17:05                 ` jos
2024-12-11 18:57                   ` Boqun Feng
2024-12-12  3:11             ` [PATCH v5] " Jason Devers
2024-12-12 11:25               ` Miguel Ojeda
2024-12-12 15:47             ` [PATCH v6] " Jason Devers
2024-12-15 20:05               ` Boqun Feng
2025-01-09 13:05               ` Alice Ryhl
2025-01-15 18:12                 ` Boqun Feng
2025-07-19 17:40               ` [tip: locking/core] rust: sync: Add #[must_use] to Lock::try_lock() tip-bot2 for Jason Devers
2024-12-08 21:28     ` [PATCH] rust: sync: add #[must_use] to Lock::try_lock Miguel Ojeda
2024-12-09  7:11 ` Alice Ryhl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20241208184834.50212-1-dev.json2@gmail.com \
    --to=dev.json2@gmail.com \
    --cc=a.hindborg@kernel.org \
    --cc=alex.gaynor@gmail.com \
    --cc=alice@ryhl.io \
    --cc=aliceryhl@google.com \
    --cc=benno.lossin@proton.me \
    --cc=bjorn3_gh@protonmail.com \
    --cc=boqun.feng@gmail.com \
    --cc=gary@garyguo.net \
    --cc=ojeda@kernel.org \
    --cc=rust-for-linux@vger.kernel.org \
    --cc=tmgross@umich.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.