tcp.c (08a7c7772b4db0be06e3b27239147c0a36e2a507) | tcp.c (ff029451496364eef0d342618dfc9972b78f3392) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * NVMe over Fabrics TCP host. 4 * Copyright (c) 2018 Lightbits Labs. All rights reserved. 5 */ 6#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 7#include <linux/module.h> 8#include <linux/init.h> --- 450 unchanged lines hidden (view full) --- 459 if (!rq) { 460 dev_err(queue->ctrl->ctrl.device, 461 "queue %d tag 0x%x not found\n", 462 nvme_tcp_queue_id(queue), cqe->command_id); 463 nvme_tcp_error_recovery(&queue->ctrl->ctrl); 464 return -EINVAL; 465 } 466 | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * NVMe over Fabrics TCP host. 4 * Copyright (c) 2018 Lightbits Labs. All rights reserved. 5 */ 6#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 7#include <linux/module.h> 8#include <linux/init.h> --- 450 unchanged lines hidden (view full) --- 459 if (!rq) { 460 dev_err(queue->ctrl->ctrl.device, 461 "queue %d tag 0x%x not found\n", 462 nvme_tcp_queue_id(queue), cqe->command_id); 463 nvme_tcp_error_recovery(&queue->ctrl->ctrl); 464 return -EINVAL; 465 } 466 |
467 nvme_end_request(rq, cqe->status, cqe->result); | 467 if (!nvme_end_request(rq, cqe->status, cqe->result)) 468 nvme_complete_rq(rq); |
468 queue->nr_cqe++; 469 470 return 0; 471} 472 473static int nvme_tcp_handle_c2h_data(struct nvme_tcp_queue *queue, 474 struct nvme_tcp_data_pdu *pdu) 475{ --- 173 unchanged lines hidden (view full) --- 649 return -EINVAL; 650 } 651} 652 653static inline void nvme_tcp_end_request(struct request *rq, u16 status) 654{ 655 union nvme_result res = {}; 656 | 469 queue->nr_cqe++; 470 471 return 0; 472} 473 474static int nvme_tcp_handle_c2h_data(struct nvme_tcp_queue *queue, 475 struct nvme_tcp_data_pdu *pdu) 476{ --- 173 unchanged lines hidden (view full) --- 650 return -EINVAL; 651 } 652} 653 654static inline void nvme_tcp_end_request(struct request *rq, u16 status) 655{ 656 union nvme_result res = {}; 657 |
657 nvme_end_request(rq, cpu_to_le16(status << 1), res); | 658 if (!nvme_end_request(rq, cpu_to_le16(status << 1), res)) 659 nvme_complete_rq(rq); |
658} 659 660static int nvme_tcp_recv_data(struct nvme_tcp_queue *queue, struct sk_buff *skb, 661 unsigned int *offset, size_t *len) 662{ 663 struct nvme_tcp_data_pdu *pdu = (void *)queue->pdu; 664 struct nvme_tcp_request *req; 665 struct request *rq; --- 1828 unchanged lines hidden --- | 660} 661 662static int nvme_tcp_recv_data(struct nvme_tcp_queue *queue, struct sk_buff *skb, 663 unsigned int *offset, size_t *len) 664{ 665 struct nvme_tcp_data_pdu *pdu = (void *)queue->pdu; 666 struct nvme_tcp_request *req; 667 struct request *rq; --- 1828 unchanged lines hidden --- |