Patch "zfcp: fix D_ID field with actual value on tracing SAN responses" has been added to the 4.4-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
zfcp: fix D_ID field with actual value on tracing SAN responses
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
zfcp-fix-d_id-field-with-actual-value-on-tracing-san-responses.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
771bf03537ddfa4a4dde62ef9dfbc82e4f77ab20Mon Sep 17 00:00:00 2001
From: Steffen Maier <[email protected]>
Date: Wed, 10 Aug 2016 18:30:51 +0200
Subject: zfcp: fix D_ID field with actual value on tracing SAN responses
From: Steffen Maier <[email protected]>
commit 771bf03537ddfa4a4dde62ef9dfbc82e4f77ab20 upstream.
With commit 2c55b750a884b86dea8b4cc5f15e1484cc47a25c ("[SCSI] zfcp: Redesign of the debug tracing for SAN records.") we lost the N_Port-ID where an ELS response comes from. With commit 7c7dc196814b9e1d5cc254dc579a5fa78ae524f7 ("[SCSI] zfcp: Simplify handling of ct and els requests") we lost the N_Port-ID where a CT response comes from. It's especially useful if the request SAN trace record with D_ID was already lost due to trace buffer wrap.
GS uses an open WKA port handle and ELS just a D_ID, and only for ELS we could get D_ID from QTCB bottom via zfcp_fsf_req. To cover both cases, add a new field to zfcp_fsf_ct_els and fill it in on request to use in SAN response trace. Strictly speaking the D_ID on SAN response is the FC frame's S_ID. We don't need a field for the other end which is always us.
--- drivers/s390/scsi/zfcp_dbf.c | 2 +- drivers/s390/scsi/zfcp_fsf.c | 2 ++ drivers/s390/scsi/zfcp_fsf.h | 4 +++- 3 files changed, 6 insertions(+), 2 deletions(-)
drivers/s390/scsi/zfcp_dbf.c +1 -1
@@ -407,7 +407,7 @@ void zfcp_dbf_san_res(char *tag, struct length = (u16)(ct_els->resp->length +FC_CT_HDR_LEN );zfcp_dbf_san (tag, dbf,sg_virt (ct_els->resp),ZFCP_DBF_SAN_RES , length, - fsf->req_id,0 ); + fsf->req_id, ct_els->d_id); }/**
drivers/s390/scsi/zfcp_fsf.c +2 -0
@@ -1079,6 +1079,7 @@ int zfcp_fsf_send_ct(struct zfcp_fc_wka_ req->handler = zfcp_fsf_send_ct_handler; req->qtcb->header.port_handle = wka_port->handle; + ct->d_id = wka_port->d_id; req->data = ct;zfcp_dbf_san_req ("fssct_1" , req, wka_port->d_id);
@@ -1175,6 +1176,7 @@ int zfcp_fsf_send_els(struct zfcp_adaptehton24 (req->qtcb->bottom.support.d_id, d_id); req->handler = zfcp_fsf_send_els_handler; + els->d_id = d_id; req->data = els;zfcp_dbf_san_req ("fssels1" , req, d_id);
drivers/s390/scsi/zfcp_fsf.h +3 -1
@@ -3,7 +3,7 @@* * Interface to the FSF support functions. * -* Copyright IBM Corp. 2002, 2010 +* Copyright IBM Corp. 2002, 2015 */ #ifndef FSF_H
@@ -436,6 +436,7 @@ struct zfcp_blk_drv_data {* @handler_data: data passed to handler function * @port: Optional pointer to port for zfcp internal ELS (only test link ADISC) * @status: used to pass error status to calling function +* @d_id: Destination ID of either open WKA port for CT or of D_ID for ELS */ struct zfcp_fsf_ct_els {struct scatterlist *req;
@@ -444,6 +445,7 @@ struct zfcp_fsf_ct_els {void *handler_data;struct zfcp_port *port;int status; + u32 d_id; };#endif /* FSF_H */
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/zfcp-fix-els-gs-request-response-length-for-hardware-data-router.patch queue-4.4/zfcp-trace-on-request-for-open-and-close-of-wka-port.patch queue-4.4/zfcp-close-window-with-unblocked-rport-during-rport-gone.patch queue-4.4/zfcp-retain-trace-level-for-scsi-and-hba-fsf-response-records.patch queue-4.4/zfcp-restore-dont-use-0-to-indicate-invalid-lun-in-rec-trace.patch queue-4.4/zfcp-fix-fc_host-port_type-with-npiv.patch queue-4.4/zfcp-fix-d_id-field-with-actual-value-on-tracing-san-responses.patch queue-4.4/zfcp-fix-payload-trace-length-for-san-request-response.patch queue-4.4/scsi-zfcp-spin_lock_irqsave-is-not-nestable.patch queue-4.4/zfcp-restore-tracing-of-handle-for-port-and-lun-with-hba-records.patch queue-4.4/zfcp-trace-full-payload-of-all-san-records-req-resp-iels.patch