Re: [PATCH v7 5/5] nvmet-tcp: Support KeyUpdate
From: Christoph Hellwig <hch@lst.de>
Date: 2026-03-20 07:53:52
Also in:
linux-doc, linux-nfs, linux-nvme, lkml
From: Christoph Hellwig <hch@lst.de>
Date: 2026-03-20 07:53:52
Also in:
linux-doc, linux-nfs, linux-nvme, lkml
static void nvmet_tcp_free_cmd_buffers(struct nvmet_tcp_cmd *cmd); +#ifdef CONFIG_NVME_TARGET_TCP_TLS +static int nvmet_tcp_tls_handshake(struct nvmet_tcp_queue *queue, + enum handshake_key_update_type keyupdate); +#endif
Can we find a way to just avoid the ifdefered here and just rely on compiler dead code elimination?
+#ifdef CONFIG_NVME_TARGET_TCP_TLS
+static bool nvmet_tls_key_expired(struct nvmet_tcp_queue *queue, int ret)
+{
+ return ret == -EKEYEXPIRED &&
+ queue->state != NVMET_TCP_Q_DISCONNECTING &&
+ queue->state != NVMET_TCP_Q_TLS_HANDSHAKE;
+}
+#else
+static bool nvmet_tls_key_expired(struct nvmet_tcp_queue *queue, int ret)
+{
+ return false;
+}
+#endifThis is a pretty clear candidate for IS_ENABLED().
+ spin_lock_bh(&queue->state_lock);
+ if (queue->state == NVMET_TCP_Q_TLS_HANDSHAKE) {
+ /* Socket closed during handshake */
+ tls_handshake_cancel(queue->sock->sk);
+ }
+ if (queue->state != NVMET_TCP_Q_DISCONNECTING) {
+ queue->state = NVMET_TCP_Q_DISCONNECTING;
+ kref_put(&queue->kref, nvmet_tcp_release_queue);
+ }switch on the queue state?
+ ret = nvmet_tcp_tls_handshake(queue, HANDSHAKE_KEY_UPDATE_TYPE_RECEIVED);
Overly lone line.
if (unlikely(ret < 0)) {
+ if (nvmet_tls_key_expired(queue, ret))
+ goto done;This has extra indentation.