Commit 136cc1ff authored by Israel Rukshin's avatar Israel Rukshin Committed by Christoph Hellwig

nvmet: rename nvmet_check_data_len to nvmet_check_transfer_len

The function doesn't check only the data length, because the transfer
length includes also the metadata length in some cases. This is
preparation for adding metadata (T10-PI) support.
Signed-off-by: default avatarIsrael Rukshin <israelr@mellanox.com>
Signed-off-by: default avatarMax Gurtovoy <maxg@mellanox.com>
Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
Reviewed-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: default avatarJames Smart <james.smart@broadcom.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent 26af180c
...@@ -295,7 +295,7 @@ static void nvmet_execute_get_log_page_ana(struct nvmet_req *req) ...@@ -295,7 +295,7 @@ static void nvmet_execute_get_log_page_ana(struct nvmet_req *req)
static void nvmet_execute_get_log_page(struct nvmet_req *req) static void nvmet_execute_get_log_page(struct nvmet_req *req)
{ {
if (!nvmet_check_data_len(req, nvmet_get_log_page_len(req->cmd))) if (!nvmet_check_transfer_len(req, nvmet_get_log_page_len(req->cmd)))
return; return;
switch (req->cmd->get_log_page.lid) { switch (req->cmd->get_log_page.lid) {
...@@ -627,7 +627,7 @@ static void nvmet_execute_identify_desclist(struct nvmet_req *req) ...@@ -627,7 +627,7 @@ static void nvmet_execute_identify_desclist(struct nvmet_req *req)
static void nvmet_execute_identify(struct nvmet_req *req) static void nvmet_execute_identify(struct nvmet_req *req)
{ {
if (!nvmet_check_data_len(req, NVME_IDENTIFY_DATA_SIZE)) if (!nvmet_check_transfer_len(req, NVME_IDENTIFY_DATA_SIZE))
return; return;
switch (req->cmd->identify.cns) { switch (req->cmd->identify.cns) {
...@@ -656,7 +656,7 @@ static void nvmet_execute_identify(struct nvmet_req *req) ...@@ -656,7 +656,7 @@ static void nvmet_execute_identify(struct nvmet_req *req)
*/ */
static void nvmet_execute_abort(struct nvmet_req *req) static void nvmet_execute_abort(struct nvmet_req *req)
{ {
if (!nvmet_check_data_len(req, 0)) if (!nvmet_check_transfer_len(req, 0))
return; return;
nvmet_set_result(req, 1); nvmet_set_result(req, 1);
nvmet_req_complete(req, 0); nvmet_req_complete(req, 0);
...@@ -745,7 +745,7 @@ static void nvmet_execute_set_features(struct nvmet_req *req) ...@@ -745,7 +745,7 @@ static void nvmet_execute_set_features(struct nvmet_req *req)
u16 nsqr; u16 nsqr;
u16 ncqr; u16 ncqr;
if (!nvmet_check_data_len(req, 0)) if (!nvmet_check_transfer_len(req, 0))
return; return;
switch (cdw10 & 0xff) { switch (cdw10 & 0xff) {
...@@ -817,7 +817,7 @@ static void nvmet_execute_get_features(struct nvmet_req *req) ...@@ -817,7 +817,7 @@ static void nvmet_execute_get_features(struct nvmet_req *req)
u32 cdw10 = le32_to_cpu(req->cmd->common.cdw10); u32 cdw10 = le32_to_cpu(req->cmd->common.cdw10);
u16 status = 0; u16 status = 0;
if (!nvmet_check_data_len(req, nvmet_feat_data_len(req, cdw10))) if (!nvmet_check_transfer_len(req, nvmet_feat_data_len(req, cdw10)))
return; return;
switch (cdw10 & 0xff) { switch (cdw10 & 0xff) {
...@@ -884,7 +884,7 @@ void nvmet_execute_async_event(struct nvmet_req *req) ...@@ -884,7 +884,7 @@ void nvmet_execute_async_event(struct nvmet_req *req)
{ {
struct nvmet_ctrl *ctrl = req->sq->ctrl; struct nvmet_ctrl *ctrl = req->sq->ctrl;
if (!nvmet_check_data_len(req, 0)) if (!nvmet_check_transfer_len(req, 0))
return; return;
mutex_lock(&ctrl->lock); mutex_lock(&ctrl->lock);
...@@ -903,7 +903,7 @@ void nvmet_execute_keep_alive(struct nvmet_req *req) ...@@ -903,7 +903,7 @@ void nvmet_execute_keep_alive(struct nvmet_req *req)
{ {
struct nvmet_ctrl *ctrl = req->sq->ctrl; struct nvmet_ctrl *ctrl = req->sq->ctrl;
if (!nvmet_check_data_len(req, 0)) if (!nvmet_check_transfer_len(req, 0))
return; return;
pr_debug("ctrl %d update keep-alive timer for %d secs\n", pr_debug("ctrl %d update keep-alive timer for %d secs\n",
......
...@@ -950,9 +950,9 @@ void nvmet_req_uninit(struct nvmet_req *req) ...@@ -950,9 +950,9 @@ void nvmet_req_uninit(struct nvmet_req *req)
} }
EXPORT_SYMBOL_GPL(nvmet_req_uninit); EXPORT_SYMBOL_GPL(nvmet_req_uninit);
bool nvmet_check_data_len(struct nvmet_req *req, size_t data_len) bool nvmet_check_transfer_len(struct nvmet_req *req, size_t len)
{ {
if (unlikely(data_len != req->transfer_len)) { if (unlikely(len != req->transfer_len)) {
req->error_loc = offsetof(struct nvme_common_command, dptr); req->error_loc = offsetof(struct nvme_common_command, dptr);
nvmet_req_complete(req, NVME_SC_SGL_INVALID_DATA | NVME_SC_DNR); nvmet_req_complete(req, NVME_SC_SGL_INVALID_DATA | NVME_SC_DNR);
return false; return false;
...@@ -960,7 +960,7 @@ bool nvmet_check_data_len(struct nvmet_req *req, size_t data_len) ...@@ -960,7 +960,7 @@ bool nvmet_check_data_len(struct nvmet_req *req, size_t data_len)
return true; return true;
} }
EXPORT_SYMBOL_GPL(nvmet_check_data_len); EXPORT_SYMBOL_GPL(nvmet_check_transfer_len);
bool nvmet_check_data_len_lte(struct nvmet_req *req, size_t data_len) bool nvmet_check_data_len_lte(struct nvmet_req *req, size_t data_len)
{ {
......
...@@ -171,7 +171,7 @@ static void nvmet_execute_disc_get_log_page(struct nvmet_req *req) ...@@ -171,7 +171,7 @@ static void nvmet_execute_disc_get_log_page(struct nvmet_req *req)
u16 status = 0; u16 status = 0;
void *buffer; void *buffer;
if (!nvmet_check_data_len(req, data_len)) if (!nvmet_check_transfer_len(req, data_len))
return; return;
if (req->cmd->get_log_page.lid != NVME_LOG_DISC) { if (req->cmd->get_log_page.lid != NVME_LOG_DISC) {
...@@ -244,7 +244,7 @@ static void nvmet_execute_disc_identify(struct nvmet_req *req) ...@@ -244,7 +244,7 @@ static void nvmet_execute_disc_identify(struct nvmet_req *req)
const char model[] = "Linux"; const char model[] = "Linux";
u16 status = 0; u16 status = 0;
if (!nvmet_check_data_len(req, NVME_IDENTIFY_DATA_SIZE)) if (!nvmet_check_transfer_len(req, NVME_IDENTIFY_DATA_SIZE))
return; return;
if (req->cmd->identify.cns != NVME_ID_CNS_CTRL) { if (req->cmd->identify.cns != NVME_ID_CNS_CTRL) {
...@@ -298,7 +298,7 @@ static void nvmet_execute_disc_set_features(struct nvmet_req *req) ...@@ -298,7 +298,7 @@ static void nvmet_execute_disc_set_features(struct nvmet_req *req)
u32 cdw10 = le32_to_cpu(req->cmd->common.cdw10); u32 cdw10 = le32_to_cpu(req->cmd->common.cdw10);
u16 stat; u16 stat;
if (!nvmet_check_data_len(req, 0)) if (!nvmet_check_transfer_len(req, 0))
return; return;
switch (cdw10 & 0xff) { switch (cdw10 & 0xff) {
...@@ -324,7 +324,7 @@ static void nvmet_execute_disc_get_features(struct nvmet_req *req) ...@@ -324,7 +324,7 @@ static void nvmet_execute_disc_get_features(struct nvmet_req *req)
u32 cdw10 = le32_to_cpu(req->cmd->common.cdw10); u32 cdw10 = le32_to_cpu(req->cmd->common.cdw10);
u16 stat = 0; u16 stat = 0;
if (!nvmet_check_data_len(req, 0)) if (!nvmet_check_transfer_len(req, 0))
return; return;
switch (cdw10 & 0xff) { switch (cdw10 & 0xff) {
......
...@@ -12,7 +12,7 @@ static void nvmet_execute_prop_set(struct nvmet_req *req) ...@@ -12,7 +12,7 @@ static void nvmet_execute_prop_set(struct nvmet_req *req)
u64 val = le64_to_cpu(req->cmd->prop_set.value); u64 val = le64_to_cpu(req->cmd->prop_set.value);
u16 status = 0; u16 status = 0;
if (!nvmet_check_data_len(req, 0)) if (!nvmet_check_transfer_len(req, 0))
return; return;
if (req->cmd->prop_set.attrib & 1) { if (req->cmd->prop_set.attrib & 1) {
...@@ -41,7 +41,7 @@ static void nvmet_execute_prop_get(struct nvmet_req *req) ...@@ -41,7 +41,7 @@ static void nvmet_execute_prop_get(struct nvmet_req *req)
u16 status = 0; u16 status = 0;
u64 val = 0; u64 val = 0;
if (!nvmet_check_data_len(req, 0)) if (!nvmet_check_transfer_len(req, 0))
return; return;
if (req->cmd->prop_get.attrib & 1) { if (req->cmd->prop_get.attrib & 1) {
...@@ -156,7 +156,7 @@ static void nvmet_execute_admin_connect(struct nvmet_req *req) ...@@ -156,7 +156,7 @@ static void nvmet_execute_admin_connect(struct nvmet_req *req)
struct nvmet_ctrl *ctrl = NULL; struct nvmet_ctrl *ctrl = NULL;
u16 status = 0; u16 status = 0;
if (!nvmet_check_data_len(req, sizeof(struct nvmf_connect_data))) if (!nvmet_check_transfer_len(req, sizeof(struct nvmf_connect_data)))
return; return;
d = kmalloc(sizeof(*d), GFP_KERNEL); d = kmalloc(sizeof(*d), GFP_KERNEL);
...@@ -223,7 +223,7 @@ static void nvmet_execute_io_connect(struct nvmet_req *req) ...@@ -223,7 +223,7 @@ static void nvmet_execute_io_connect(struct nvmet_req *req)
u16 qid = le16_to_cpu(c->qid); u16 qid = le16_to_cpu(c->qid);
u16 status = 0; u16 status = 0;
if (!nvmet_check_data_len(req, sizeof(struct nvmf_connect_data))) if (!nvmet_check_transfer_len(req, sizeof(struct nvmf_connect_data)))
return; return;
d = kmalloc(sizeof(*d), GFP_KERNEL); d = kmalloc(sizeof(*d), GFP_KERNEL);
......
...@@ -178,7 +178,7 @@ static void nvmet_bdev_execute_rw(struct nvmet_req *req) ...@@ -178,7 +178,7 @@ static void nvmet_bdev_execute_rw(struct nvmet_req *req)
sector_t sector; sector_t sector;
int op, i; int op, i;
if (!nvmet_check_data_len(req, nvmet_rw_data_len(req))) if (!nvmet_check_transfer_len(req, nvmet_rw_data_len(req)))
return; return;
if (!req->sg_cnt) { if (!req->sg_cnt) {
...@@ -239,7 +239,7 @@ static void nvmet_bdev_execute_flush(struct nvmet_req *req) ...@@ -239,7 +239,7 @@ static void nvmet_bdev_execute_flush(struct nvmet_req *req)
{ {
struct bio *bio = &req->b.inline_bio; struct bio *bio = &req->b.inline_bio;
if (!nvmet_check_data_len(req, 0)) if (!nvmet_check_transfer_len(req, 0))
return; return;
bio_init(bio, req->inline_bvec, ARRAY_SIZE(req->inline_bvec)); bio_init(bio, req->inline_bvec, ARRAY_SIZE(req->inline_bvec));
...@@ -331,7 +331,7 @@ static void nvmet_bdev_execute_write_zeroes(struct nvmet_req *req) ...@@ -331,7 +331,7 @@ static void nvmet_bdev_execute_write_zeroes(struct nvmet_req *req)
sector_t nr_sector; sector_t nr_sector;
int ret; int ret;
if (!nvmet_check_data_len(req, 0)) if (!nvmet_check_transfer_len(req, 0))
return; return;
sector = le64_to_cpu(write_zeroes->slba) << sector = le64_to_cpu(write_zeroes->slba) <<
......
...@@ -241,7 +241,7 @@ static void nvmet_file_execute_rw(struct nvmet_req *req) ...@@ -241,7 +241,7 @@ static void nvmet_file_execute_rw(struct nvmet_req *req)
{ {
ssize_t nr_bvec = req->sg_cnt; ssize_t nr_bvec = req->sg_cnt;
if (!nvmet_check_data_len(req, nvmet_rw_data_len(req))) if (!nvmet_check_transfer_len(req, nvmet_rw_data_len(req)))
return; return;
if (!req->sg_cnt || !nr_bvec) { if (!req->sg_cnt || !nr_bvec) {
...@@ -285,7 +285,7 @@ static void nvmet_file_flush_work(struct work_struct *w) ...@@ -285,7 +285,7 @@ static void nvmet_file_flush_work(struct work_struct *w)
static void nvmet_file_execute_flush(struct nvmet_req *req) static void nvmet_file_execute_flush(struct nvmet_req *req)
{ {
if (!nvmet_check_data_len(req, 0)) if (!nvmet_check_transfer_len(req, 0))
return; return;
INIT_WORK(&req->f.work, nvmet_file_flush_work); INIT_WORK(&req->f.work, nvmet_file_flush_work);
schedule_work(&req->f.work); schedule_work(&req->f.work);
...@@ -375,7 +375,7 @@ static void nvmet_file_write_zeroes_work(struct work_struct *w) ...@@ -375,7 +375,7 @@ static void nvmet_file_write_zeroes_work(struct work_struct *w)
static void nvmet_file_execute_write_zeroes(struct nvmet_req *req) static void nvmet_file_execute_write_zeroes(struct nvmet_req *req)
{ {
if (!nvmet_check_data_len(req, 0)) if (!nvmet_check_transfer_len(req, 0))
return; return;
INIT_WORK(&req->f.work, nvmet_file_write_zeroes_work); INIT_WORK(&req->f.work, nvmet_file_write_zeroes_work);
schedule_work(&req->f.work); schedule_work(&req->f.work);
......
...@@ -387,7 +387,7 @@ u16 nvmet_parse_fabrics_cmd(struct nvmet_req *req); ...@@ -387,7 +387,7 @@ u16 nvmet_parse_fabrics_cmd(struct nvmet_req *req);
bool nvmet_req_init(struct nvmet_req *req, struct nvmet_cq *cq, bool nvmet_req_init(struct nvmet_req *req, struct nvmet_cq *cq,
struct nvmet_sq *sq, const struct nvmet_fabrics_ops *ops); struct nvmet_sq *sq, const struct nvmet_fabrics_ops *ops);
void nvmet_req_uninit(struct nvmet_req *req); void nvmet_req_uninit(struct nvmet_req *req);
bool nvmet_check_data_len(struct nvmet_req *req, size_t data_len); bool nvmet_check_transfer_len(struct nvmet_req *req, size_t len);
bool nvmet_check_data_len_lte(struct nvmet_req *req, size_t data_len); bool nvmet_check_data_len_lte(struct nvmet_req *req, size_t data_len);
void nvmet_req_complete(struct nvmet_req *req, u16 status); void nvmet_req_complete(struct nvmet_req *req, u16 status);
int nvmet_req_alloc_sgl(struct nvmet_req *req); int nvmet_req_alloc_sgl(struct nvmet_req *req);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment