engines:io_uring: update arguments to fetch nvme data
[fio.git] / engines / io_uring.c
index 0906546349a4a526d57e10156ccbfbe65e769ab0..30d9ccd79803b96a7496b941341de6f3f85b001a 100644 (file)
@@ -1086,30 +1086,24 @@ static int fio_ioring_cmd_open_file(struct thread_data *td, struct fio_file *f)
 
        if (o->cmd_type == FIO_URING_CMD_NVME) {
                struct nvme_data *data = NULL;
-               unsigned int nsid, lba_size = 0;
-               __u32 ms = 0;
+               unsigned int lba_size = 0;
                __u64 nlba = 0;
                int ret;
 
                /* Store the namespace-id and lba size. */
                data = FILE_ENG_DATA(f);
                if (data == NULL) {
-                       ret = fio_nvme_get_info(f, &nsid, &lba_size, &ms, &nlba);
-                       if (ret)
-                               return ret;
-
                        data = calloc(1, sizeof(struct nvme_data));
-                       data->nsid = nsid;
-                       if (ms)
-                               data->lba_ext = lba_size + ms;
-                       else
-                               data->lba_shift = ilog2(lba_size);
+                       ret = fio_nvme_get_info(f, &nlba, data);
+                       if (ret) {
+                               free(data);
+                               return ret;
+                       }
 
                        FILE_SET_ENG_DATA(f, data);
                }
 
-               assert(data->lba_shift < 32);
-               lba_size = data->lba_ext ? data->lba_ext : (1U << data->lba_shift);
+               lba_size = data->lba_ext ? data->lba_ext : data->lba_size;
 
                for_each_rw_ddir(ddir) {
                        if (td->o.min_bs[ddir] % lba_size ||
@@ -1173,23 +1167,17 @@ static int fio_ioring_cmd_get_file_size(struct thread_data *td,
 
        if (o->cmd_type == FIO_URING_CMD_NVME) {
                struct nvme_data *data = NULL;
-               unsigned int nsid, lba_size = 0;
-               __u32 ms = 0;
                __u64 nlba = 0;
                int ret;
 
-               ret = fio_nvme_get_info(f, &nsid, &lba_size, &ms, &nlba);
-               if (ret)
-                       return ret;
-
                data = calloc(1, sizeof(struct nvme_data));
-               data->nsid = nsid;
-               if (ms)
-                       data->lba_ext = lba_size + ms;
-               else
-                       data->lba_shift = ilog2(lba_size);
+               ret = fio_nvme_get_info(f, &nlba, data);
+               if (ret) {
+                       free(data);
+                       return ret;
+               }
 
-               f->real_file_size = lba_size * nlba;
+               f->real_file_size = data->lba_size * nlba;
                fio_file_set_size_known(f);
 
                FILE_SET_ENG_DATA(f, data);