]> www.infradead.org Git - users/sagi/libnvme.git/commitdiff
mi: fix the return error code.
authorHao Jiang <jianghao@google.com>
Tue, 6 Dec 2022 00:48:35 +0000 (16:48 -0800)
committerDaniel Wagner <wagi@monom.org>
Mon, 6 May 2024 17:07:19 +0000 (19:07 +0200)
When returning a system error code (i.e. rc < 0), the function should
return -1 and set errno instead of returning the errno directly. It is
very helpful for the client to handle the rc in an unified way.

Signed-off-by: Hao Jiang <jianghao@google.com>
Signed-off-by: Jinliang Wang <jinliangw@google.com>
src/nvme/mi.c

index 84d51b0ca7ad56570b0168427b111b5451a15649..5c83e463dfea617f7314d739769b30b2121d52e1 100644 (file)
@@ -1003,8 +1003,10 @@ int nvme_mi_admin_get_features(nvme_mi_ctrl_t ctrl,
        struct nvme_mi_req req;
        int rc;
 
-       if (args->args_size < sizeof(*args))
-               return -EINVAL;
+       if (args->args_size < sizeof(*args)) {
+               errno = EINVAL;
+               return -1;
+       }
 
        nvme_mi_admin_init_req(&req, &req_hdr, ctrl->id,
                               nvme_admin_get_features);
@@ -1042,8 +1044,10 @@ int nvme_mi_admin_set_features(nvme_mi_ctrl_t ctrl,
        struct nvme_mi_req req;
        int rc;
 
-       if (args->args_size < sizeof(*args))
-               return -EINVAL;
+       if (args->args_size < sizeof(*args)) {
+               errno = EINVAL;
+               return -1;
+       }
 
        nvme_mi_admin_init_req(&req, &req_hdr, ctrl->id,
                               nvme_admin_set_features);
@@ -1140,8 +1144,10 @@ int nvme_mi_admin_ns_attach(nvme_mi_ctrl_t ctrl,
        struct nvme_mi_req req;
        int rc;
 
-       if (args->args_size < sizeof(*args))
-               return -EINVAL;
+       if (args->args_size < sizeof(*args)) {
+               errno = EINVAL;
+               return -1;
+       }
 
        nvme_mi_admin_init_req(&req, &req_hdr, ctrl->id,
                               nvme_admin_ns_attach);
@@ -1173,17 +1179,20 @@ int nvme_mi_admin_fw_download(nvme_mi_ctrl_t ctrl,
        struct nvme_mi_req req;
        int rc;
 
-       if (args->args_size < sizeof(*args))
-               return -EINVAL;
-
-       if (args->data_len & 0x3)
-               return -EINVAL;
+       if (args->args_size < sizeof(*args)) {
+               errno = EINVAL;
+               return -1;
+       }
 
-       if (args->offset & 0x3)
-               return -EINVAL;
+       if ((args->data_len & 0x3) || (!args->data_len)) {
+               errno = EINVAL;
+               return -1;
+       }
 
-       if (!args->data_len)
-               return -EINVAL;
+       if (args->offset & 0x3) {
+               errno = EINVAL;
+               return -1;
+       }
 
        nvme_mi_admin_init_req(&req, &req_hdr, ctrl->id,
                               nvme_admin_fw_download);
@@ -1215,8 +1224,10 @@ int nvme_mi_admin_fw_commit(nvme_mi_ctrl_t ctrl,
        struct nvme_mi_req req;
        int rc;
 
-       if (args->args_size < sizeof(*args))
-               return -EINVAL;
+       if (args->args_size < sizeof(*args)) {
+               errno = EINVAL;
+               return -1;
+       }
 
        nvme_mi_admin_init_req(&req, &req_hdr, ctrl->id,
                               nvme_admin_fw_commit);
@@ -1245,8 +1256,10 @@ int nvme_mi_admin_format_nvm(nvme_mi_ctrl_t ctrl,
        struct nvme_mi_req req;
        int rc;
 
-       if (args->args_size < sizeof(*args))
-               return -EINVAL;
+       if (args->args_size < sizeof(*args)) {
+               errno = EINVAL;
+               return -1;
+       }
 
        nvme_mi_admin_init_req(&req, &req_hdr, ctrl->id,
                               nvme_admin_format_nvm);
@@ -1279,8 +1292,10 @@ int nvme_mi_admin_sanitize_nvm(nvme_mi_ctrl_t ctrl,
        struct nvme_mi_req req;
        int rc;
 
-       if (args->args_size < sizeof(*args))
-               return -EINVAL;
+       if (args->args_size < sizeof(*args)) {
+               errno = EINVAL;
+               return -1;
+       }
 
        nvme_mi_admin_init_req(&req, &req_hdr, ctrl->id,
                               nvme_admin_sanitize_nvm);