20 Mar, 2012

1 commit


01 Nov, 2011

1 commit


13 Feb, 2011

3 commits

  • Problem:

    From initaitor machine, when queried role of target (other end of connection),
    it is "initiator", hence SCSI-ml doesn't send any LUN Inquiry commands.

    Fix:

    If there is a registered target for FC_TYPE_FCP, extend lport's params
    (capability) to be target as well, By default lport params are
    INITIATOR only. Having this fix, caused initiator to send SCSI LUN
    inquiry command to target.

    Signed-off-by: Kiran Patil
    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Kiran Patil
     
  • When an SCST provider is registered, it needs to know what
    local ports are available for configuration as targets.

    Add a notifier chain that is invoked when any local port
    that is added or deleted.

    Maintain a global list of local ports and add an
    interator function that calls a given function for
    every existing local port. This is used when first
    loading a provider.

    Signed-off-by: Joe Eykholt
    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Joe Eykholt
     
  • Allow FC-4 provider modules to hook into libfc, mostly for targets.
    This should allow any FC-4 module to handle PRLI requests and maintain
    process-association states.

    Each provider registers its ops with libfc and then will be called for
    any incoming PRLI for that FC-4 type on any instance. The provider
    can decide whether to handle that particular instance using any method
    it likes, such as ACLs or other configuration information.

    A count is kept of the number of successful PRLIs from the remote port.
    Providers are called back with an implicit PRLO when the remote port
    is about to be deleted or has been reset.

    fc_lport_recv_req() now sends incoming FC-4 requests to FC-4 providers,
    and there is a built-in provider always registered for handling
    incoming ELS requests.

    The call to provider recv() routines uses rcu_read_lock()
    so that providers aren't removed during the call. That lock is very
    cheap and shouldn't affect any performance on ELS requests.
    Providers can rely on the RCU lock to protect a session lookup as well.

    Signed-off-by: Joe Eykholt
    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Joe Eykholt
     

28 Jul, 2010

1 commit

  • Add functions to fill in an FC header given a request header.
    These reduces code lines in fc_lport and fc_rport and works
    without an exchange/sequence assigned.

    fc_fill_reply_hdr() fills a header for a final reply frame.

    fc_fill_hdr() which is similar but allows specifying the
    f_ctl parameter.

    Add defines for F_CTL values FC_FCTL_REQ and FC_FCTL_RESP.
    These can be used for most request and response sequences.

    v2 of patch adds a line to copy the frame encapsulation
    info from the received frame.

    Signed-off-by: Joe Eykholt
    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Joe Eykholt
     

05 Dec, 2009

4 commits

  • This patch makes a variety of cleanup changes to all libfc files.

    This patch adds kernel-doc headers to all functions lacking them
    and attempts to better format existing headers. It also add kernel-doc
    headers to structures.

    This patch ensures that the current naming conventions for local ports,
    remote ports and remote port private data is upheld in the following
    manner.

    struct instance (i.e. variable name)
    --------------------------------------------------
    fc_lport lport
    fc_rport rport
    fc_rport_libfc_priv rpriv
    fc_rport_priv rdata

    I also renamed dns_rp and ptp_rp to dns_rdata and ptp_rdata
    respectively.

    I used emacs 'indent-region' and 'tabify' on all libfc files
    to correct spacing alignments.

    I feel sorry for anyone attempting to review this patch.

    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Robert Love
     
  • When handling the multi-frame responses of fc pass-thru requests,
    a code segment similar to fc_fcp_recv_data (routine to receive
    inbound SCSI data) is used in the response handler. This patch
    is to add a routine, called fc_copy_buffer_to_sglist(), to handle
    the common function of copying data from a buffer to a scatter-
    gather list in order to avoid code duplication.

    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Robert Love
     
  • These routines are for the libfc kernel module and should be in
    the libfc .c file.

    Moving the libfc __init routine into fc_libfc.c caused the creation
    of the fc_setup_fcp() and fc_destroy_fcp() routines so that
    scsi_pkt_cachep was not exposed outside of fc_fcp.c.

    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Robert Love
     
  • include/scsi/libfc.h is currently loaded with common code
    shared between libfc's sub-modules as well as shared between
    libfc and fcoe. Previous patches attempted to move out
    non-common code. This patch creates two files for common
    libfc routines that will not be shared with fcoe, fnic or
    any other LLDs.

    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Robert Love