Skip to content

Commit 3ecf873

Browse files
mayastor-borstiagolobocastro
andcommitted
Merge #1932
1932: fix(nvme): create nvme bdev with spdk_nvme_ctrlr_opts r=tiagolobocastro a=tiagolobocastro Setup and pass spdk_nvme_ctrlr_opts as a parameter when creating the bdev. This is required because the nvme create bdev function no longer handles a nullptr parameter. Co-authored-by: Tiago Castro <[email protected]>
2 parents 6184f01 + 781ce7e commit 3ecf873

File tree

3 files changed

+21
-5
lines changed

3 files changed

+21
-5
lines changed

io-engine/src/bdev/nvme.rs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use url::Url;
1212
use spdk_rs::{
1313
bdevs::bdev_nvme_delete_async,
1414
ffihelper::copy_str_with_null,
15-
libspdk::{spdk_bdev_nvme_create, spdk_nvme_transport_id},
15+
libspdk::{self, spdk_bdev_nvme_create, spdk_nvme_transport_id},
1616
};
1717

1818
use crate::{
@@ -79,6 +79,14 @@ impl CreateDestroy for NVMe {
7979

8080
let (sender, receiver) = oneshot::channel::<ErrnoResult<()>>();
8181

82+
let mut drv_opts: libspdk::spdk_nvme_ctrlr_opts = unsafe { std::mem::zeroed() };
83+
unsafe {
84+
libspdk::spdk_nvme_ctrlr_get_default_ctrlr_opts(
85+
&mut drv_opts,
86+
size_of::<libspdk::spdk_nvme_ctrlr_opts>() as u64,
87+
);
88+
}
89+
8290
let errno = unsafe {
8391
spdk_bdev_nvme_create(
8492
&mut context.trid,
@@ -87,7 +95,7 @@ impl CreateDestroy for NVMe {
8795
context.count,
8896
Some(nvme_create_cb),
8997
cb_arg(sender),
90-
std::ptr::null_mut(),
98+
&mut drv_opts,
9199
std::ptr::null_mut(),
92100
)
93101
};

io-engine/src/bdev/nvmf.rs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use spdk_rs::{
1414
bdevs::bdev_nvme_delete_async,
1515
ffihelper::copy_str_with_null,
1616
libspdk::{
17-
spdk_bdev_nvme_create, spdk_nvme_transport_id, SPDK_NVME_IO_FLAGS_PRCHK_GUARD,
17+
self, spdk_bdev_nvme_create, spdk_nvme_transport_id, SPDK_NVME_IO_FLAGS_PRCHK_GUARD,
1818
SPDK_NVME_IO_FLAGS_PRCHK_REFTAG, SPDK_NVME_TRANSPORT_TCP, SPDK_NVMF_ADRFAM_IPV4,
1919
},
2020
};
@@ -149,6 +149,14 @@ impl CreateDestroy for Nvmf {
149149

150150
let (sender, receiver) = oneshot::channel::<ErrnoResult<usize>>();
151151

152+
let mut drv_opts: libspdk::spdk_nvme_ctrlr_opts = unsafe { std::mem::zeroed() };
153+
unsafe {
154+
libspdk::spdk_nvme_ctrlr_get_default_ctrlr_opts(
155+
&mut drv_opts,
156+
size_of::<libspdk::spdk_nvme_ctrlr_opts>() as u64,
157+
);
158+
}
159+
152160
let errno = unsafe {
153161
spdk_bdev_nvme_create(
154162
&mut context.trid,
@@ -157,7 +165,7 @@ impl CreateDestroy for Nvmf {
157165
context.count,
158166
Some(done_nvme_create_cb),
159167
cb_arg(sender),
160-
std::ptr::null_mut(), // context.prchk_flags,
168+
&mut drv_opts,
161169
std::ptr::null_mut(),
162170
)
163171
};

0 commit comments

Comments
 (0)