[PATCH v2 40/83] block: rust: add a method to get the request queue for a request
From: Andreas Hindborg
Date: Tue Jun 09 2026 - 15:38:23 EST
Add a method to `Request` for obtaining the associated `RequestQueue`.
Signed-off-by: Andreas Hindborg <a.hindborg@xxxxxxxxxx>
---
rust/kernel/block/mq/request.rs | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/rust/kernel/block/mq/request.rs b/rust/kernel/block/mq/request.rs
index f94e9c2181d0..a05df2351c2c 100644
--- a/rust/kernel/block/mq/request.rs
+++ b/rust/kernel/block/mq/request.rs
@@ -39,6 +39,7 @@
ptr::NonNull, //
};
+use super::RequestQueue;
use crate::block::bio::{
Bio,
BioIterator, //
@@ -140,6 +141,12 @@ pub fn queue_data(&self) -> <T::QueueData as ForeignOwnable>::Borrowed<'_> {
// SAFETY: By type invariants of `Request`, `self.0` is a valid request.
unsafe { T::QueueData::borrow((*(*self.0.get()).q).queuedata) }
}
+
+ /// Get the request queue associated with this request.
+ pub fn queue(&self) -> &RequestQueue<T> {
+ // SAFETY: By type invariant, self.0 is guaranteed to be valid.
+ unsafe { RequestQueue::from_raw((*self.0.get()).q) }
+ }
}
/// A wrapper around a blk-mq [`struct request`]. This represents an IO request.
--
2.51.2