lkml.org 
[lkml]   [2017]   [Feb]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.2 009/126] zfcp: fix D_ID field with actual value on tracing SAN responses
    3.2.85-rc1 review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Steffen Maier <maier@linux.vnet.ibm.com>

    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.

    Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com>
    Fixes: 2c55b750a884 ("[SCSI] zfcp: Redesign of the debug tracing for SAN records.")
    Fixes: 7c7dc196814b ("[SCSI] zfcp: Simplify handling of ct and els requests")
    Reviewed-by: Benjamin Block <bblock@linux.vnet.ibm.com>
    Reviewed-by: Hannes Reinecke <hare@suse.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    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(-)

    --- a/drivers/s390/scsi/zfcp_dbf.c
    +++ b/drivers/s390/scsi/zfcp_dbf.c
    @@ -400,7 +400,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);
    }

    /**
    --- a/drivers/s390/scsi/zfcp_fsf.c
    +++ b/drivers/s390/scsi/zfcp_fsf.c
    @@ -1055,6 +1055,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);
    @@ -1158,6 +1159,7 @@ int zfcp_fsf_send_els(struct zfcp_adapte

    hton24(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);
    --- a/drivers/s390/scsi/zfcp_fsf.h
    +++ b/drivers/s390/scsi/zfcp_fsf.h
    @@ -3,7 +3,7 @@
    *
    * Interface to the FSF support functions.
    *
    - * Copyright IBM Corporation 2002, 2010
    + * Copyright IBM Corp. 2002, 2015
    */

    #ifndef FSF_H
    @@ -462,6 +462,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;
    @@ -470,6 +471,7 @@ struct zfcp_fsf_ct_els {
    void *handler_data;
    struct zfcp_port *port;
    int status;
    + u32 d_id;
    };

    #endif /* FSF_H */
    \
     
     \ /
      Last update: 2017-02-16 01:43    [W:4.134 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site