Merge branch 'for-6.1/block' into for-6.1/passthrough
[sfrench/cifs-2.6.git] / drivers / nvme / host / tcp.c
index 3e7b29d07c7139b888169dab17e1c374d07969ca..93e2e313fa70f63a41f674e49709b3f2ef4e6368 100644 (file)
@@ -121,7 +121,6 @@ struct nvme_tcp_queue {
        struct mutex            send_mutex;
        struct llist_head       req_list;
        struct list_head        send_list;
-       bool                    more_requests;
 
        /* recv state */
        void                    *pdu;
@@ -319,7 +318,7 @@ static inline void nvme_tcp_send_all(struct nvme_tcp_queue *queue)
 static inline bool nvme_tcp_queue_more(struct nvme_tcp_queue *queue)
 {
        return !list_empty(&queue->send_list) ||
-               !llist_empty(&queue->req_list) || queue->more_requests;
+               !llist_empty(&queue->req_list);
 }
 
 static inline void nvme_tcp_queue_request(struct nvme_tcp_request *req,
@@ -338,9 +337,7 @@ static inline void nvme_tcp_queue_request(struct nvme_tcp_request *req,
         */
        if (queue->io_cpu == raw_smp_processor_id() &&
            sync && empty && mutex_trylock(&queue->send_mutex)) {
-               queue->more_requests = !last;
                nvme_tcp_send_all(queue);
-               queue->more_requests = false;
                mutex_unlock(&queue->send_mutex);
        }
 
@@ -1228,7 +1225,7 @@ static void nvme_tcp_io_work(struct work_struct *w)
                else if (unlikely(result < 0))
                        return;
 
-               if (!pending)
+               if (!pending || !queue->rd_enabled)
                        return;
 
        } while (!time_after(jiffies, deadline)); /* quota is exhausted */