rust: block: do not use removed queue flag API
`blk_queue_flag_set` and `blk_queue_flag_clear` was removed in favor of a
new API. This caused a build error for Rust block device abstractions.
Thus, use the new feature passing API instead of the old removed API.
Fixes: bd4a633b6f
("block: move the nonrot flag to queue_limits")
Signed-off-by: Andreas Hindborg <a.hindborg@samsung.com>
Link: https://lore.kernel.org/r/20240620085721.1218296-1-nmi@metaspace.dk
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
69c34f07e4
commit
5ddb88f22e
@ -100,6 +100,9 @@ impl GenDiskBuilder {
|
||||
|
||||
lim.logical_block_size = self.logical_block_size;
|
||||
lim.physical_block_size = self.physical_block_size;
|
||||
if self.rotational {
|
||||
lim.features = bindings::BLK_FEAT_ROTATIONAL;
|
||||
}
|
||||
|
||||
// SAFETY: `tagset.raw_tag_set()` points to a valid and initialized tag set
|
||||
let gendisk = from_err_ptr(unsafe {
|
||||
@ -152,20 +155,6 @@ impl GenDiskBuilder {
|
||||
// operation, so we will not race.
|
||||
unsafe { bindings::set_capacity(gendisk, self.capacity_sectors) };
|
||||
|
||||
if !self.rotational {
|
||||
// SAFETY: `gendisk` points to a valid and initialized instance of
|
||||
// `struct gendisk`. This operation uses a relaxed atomic bit flip
|
||||
// operation, so there is no race on this field.
|
||||
unsafe { bindings::blk_queue_flag_set(bindings::QUEUE_FLAG_NONROT, (*gendisk).queue) };
|
||||
} else {
|
||||
// SAFETY: `gendisk` points to a valid and initialized instance of
|
||||
// `struct gendisk`. This operation uses a relaxed atomic bit flip
|
||||
// operation, so there is no race on this field.
|
||||
unsafe {
|
||||
bindings::blk_queue_flag_clear(bindings::QUEUE_FLAG_NONROT, (*gendisk).queue)
|
||||
};
|
||||
}
|
||||
|
||||
crate::error::to_result(
|
||||
// SAFETY: `gendisk` points to a valid and initialized instance of
|
||||
// `struct gendisk`.
|
||||
|
Loading…
Reference in New Issue
Block a user