24 Aug, 2008

1 commit


23 Jul, 2008

1 commit

  • Enhance iser to act upon notification on network stack changes that
    make its RDMA connection unaligned with the link used by the stack for
    the IPs used to establish the connection.

    When RDMA_CM_EVENT_ADDR_CHANGE arrives, just disconnect the
    connection, assuming that the user space iscsid daemon will reconnect,
    and the new connection will be aligned with the IP stack.

    Signed-off-by: Or Gerlitz
    Signed-off-by: Roland Dreier

    Or Gerlitz
     

16 Jul, 2008

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (102 commits)
    [SCSI] scsi_dh: fix kconfig related build errors
    [SCSI] sym53c8xx: Fix bogus sym_que_entry re-implementation of container_of
    [SCSI] scsi_cmnd.h: remove double inclusion of linux/blkdev.h
    [SCSI] make struct scsi_{host,target}_type static
    [SCSI] fix locking in host use of blk_plug_device()
    [SCSI] zfcp: Cleanup external header file
    [SCSI] zfcp: Cleanup code in zfcp_erp.c
    [SCSI] zfcp: zfcp_fsf cleanup.
    [SCSI] zfcp: consolidate sysfs things into one file.
    [SCSI] zfcp: Cleanup of code in zfcp_aux.c
    [SCSI] zfcp: Cleanup of code in zfcp_scsi.c
    [SCSI] zfcp: Move status accessors from zfcp to SCSI include file.
    [SCSI] zfcp: Small QDIO cleanups
    [SCSI] zfcp: Adapter reopen for large number of unsolicited status
    [SCSI] zfcp: Fix error checking for ELS ADISC requests
    [SCSI] zfcp: wait until adapter is finished with ERP during auto-port
    [SCSI] ibmvfc: IBM Power Virtual Fibre Channel Adapter Client Driver
    [SCSI] sg: Add target reset support
    [SCSI] lib: Add support for the T10 (SCSI) Data Integrity Field CRC
    [SCSI] sd: Move scsi_disk() accessor function to sd.h
    ...

    Linus Torvalds
     

15 Jul, 2008

1 commit


12 Jul, 2008

14 commits

  • This patch fixes two bugs that are related.

    1. Old tools did not set can_queue/cmds_max. This patch modifies
    libiscsi so that when we add the host we catch this and set it
    to the default.

    2. iscsi_tcp thought that the scsi command that was passed to
    the eh functions needed a iscsi_cmd_task allocated for it. It
    only needed a mgmt task, and now it does not matter since it
    all comes from the same pool and libiscsi handles this for the
    drivers. ib_iser had copied iscsi_tcp's code and set can_queue
    to its max - 1 to handle this. So this patch removes the max -1,
    and just sets it to the max.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • The recv lock was defined so the iscsi layer could block
    the recv path from processing IO during recovery. It
    turns out iser just set a lock to that pointer which was pointless.

    We now disconnect the transport connection before doing recovery
    so we do not need the recv lock. For iscsi_tcp we still stop
    the recv path incase older tools are being used.

    This patch also has iscsi_itt_to_ctask user grab the session lock
    and has the caller access the task with the lock or get a ref
    to it in case the target is broken and sends a tmf success response
    then sends data or a response for the command that was supposed to
    be affected bty the tmf.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • This adds two new attrs used for creating initiator ports and
    binding sessions to hardware.

    The session level initiatorname:

    Since bnx2i does a scsi_host per host device, we need to add the
    iface initiator port settings on the session, so we can create
    multiple initiator ports (each with different inames) per device/scsi_host.

    The current iname reflects that qla4xxx can have one iname per hba, and we are
    allocating a host per session for software. The iname on the host will
    remain so we can export and set the hba level qla4xxx setting.

    The ifacename attr:

    To bind a session to a some peice of hardware in userspace we maintain
    some mappings, but during boot or iscsid restart (iscsid contains the user
    space part of the driver) we need to be able to figure out which of those
    host mappings abstractions maps to certain sessions. This patch adds
    a ifacename attr, which userspace can set to id the host side of the
    endpoint across pivot_roots and iscsid restarts.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • This hooks iser into the iscsi endpoint code. Previously it handled the
    lookup and allocation. This has been made generic so bnx2i and iser can
    share it. It also allows us to pass iser the leading conn's ep, so we
    know the ib_deivce being used and can set it as the scsi_host's parent.
    And that allows scsi-ml to set the dma_mask based on those values.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • Currently we duplicate the list of sessions, because we were using the
    test for if a session was on the host list to indicate if the session
    was bound or unbound. We can instead use the target_id and fix up
    the class so that drivers like bnx2i do not have to manage the target id
    space.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • This handles the iscsi_cmd_task rename and renames
    the iser cmd task to iser task.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • Convert ib_iser to support merged tasks.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • Currently to get a ctask from the session cmd array, you have to
    know to use the itt modifier. To make this easier on LLDs and
    so in the future we can easilly kill the session array and use
    the host shared map instead, this patch adds a nice wrapper
    to strip the itt into a session->cmds index and return a ctask.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • After the stop_conn callback has returned the LLD should not
    touch the scsi cmds. iscsi_tcp and libiscsi use the
    conn->recv_lock and suspend_rx field to halt recv path
    processing, but iser does not have any protection.

    This patch modifies iser so that userspace can just
    call the ep_disconnect callback, which will halt
    all recv IO, before calling the stop_conn callback so
    we do not have to worry about the conn->recv_lock and
    suspend rx field. iser just needs to stop the send side
    from accessing the ib conn.

    Fixup to handle when the ep poll fails and ep disconnect
    is called from Erez.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • This removes the session and conn data_size fields from the iscsi_transport.
    Just pass in the value like with host allocation. This patch also makes
    it so the LLD iscsi_conn data is allocated with the iscsi_cls_conn.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • This finishes the host/session unbinding, by adding some helpers
    to add and remove hosts and the session they manage.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • bnx2i allocates a host per netdevice but will use libiscsi,
    so this unbinds the session from the host in that code.

    This will also be useful for the iser parent device dma settings
    fixes.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • max_cmd_len and max_conn are not really used. max_cmd_len is
    always 16 and can be set by the LLD. max_conn is always one
    since we do not support MCS.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • iscsi offload (bnx2i and qla4xx) allocate a scsi host per hba,
    so the session creation path needs a shost/host_no argument.
    Software iscsi/iser will follow the same behabior as before
    where it allcoates a host per session, but in the future iser
    will probably look more like bnx2i where the host's parent is
    the hardware (rnic for iser and for bnx2i it is the nic), because
    it does not use a socket layer like how iscsi_tcp does.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     

30 Apr, 2008

2 commits


17 Apr, 2008

2 commits


11 Mar, 2008

2 commits

  • "iser_device" allocation failure is "handled" with a BUG_ON() right
    before dereferencing the NULL-pointer - fix this!

    Signed-off-by: Arne Redlich
    Signed-off-by: Erez Zilber

    Arne Redlich
     
  • The iteration through the list of "iser_device"s during device
    lookup/creation is broken -- it might result in an infinite loop if
    more than one HCA is used with iSER. Fix this by using
    list_for_each_entry() instead of the open-coded flawed list iteration
    code.

    Signed-off-by: Arne Redlich
    Signed-off-by: Erez Zilber
    Signed-off-by: Roland Dreier

    Arne Redlich
     

26 Jan, 2008

6 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (200 commits)
    [SCSI] usbstorage: use last_sector_bug flag universally
    [SCSI] libsas: abstract STP task status into a function
    [SCSI] ultrastor: clean up inline asm warnings
    [SCSI] aic7xxx: fix firmware build
    [SCSI] aacraid: fib context lock for management ioctls
    [SCSI] ch: remove forward declarations
    [SCSI] ch: fix device minor number management bug
    [SCSI] ch: handle class_device_create failure properly
    [SCSI] NCR5380: fix section mismatch
    [SCSI] sg: fix /proc/scsi/sg/devices when no SCSI devices
    [SCSI] IB/iSER: add logical unit reset support
    [SCSI] don't use __GFP_DMA for sense buffers if not required
    [SCSI] use dynamically allocated sense buffer
    [SCSI] scsi.h: add macro for enclosure bit of inquiry data
    [SCSI] sd: add fix for devices with last sector access problems
    [SCSI] fix pcmcia compile problem
    [SCSI] aacraid: add Voodoo Lite class of cards.
    [SCSI] aacraid: add new driver features flags
    [SCSI] qla2xxx: Update version number to 8.02.00-k7.
    [SCSI] qla2xxx: Issue correct MBC_INITIALIZE_FIRMWARE command.
    ...

    Linus Torvalds
     
  • Add a .change_queue_depth handler to the scsi_host_template in the
    iSER driver. iscsi_change_queue_depth was added to iscsi_tcp in order
    to solve the problem of queue depth which was too high for some
    targets. It is also applicable for iSER.

    Signed-off-by: Erez Zilber
    Signed-off-by: Roland Dreier

    Erez Zilber
     
  • Some RDMA CM events are not supported or not handled in iSER.
    This patch adds some info (printk) for the user about them.

    Signed-off-by: Erez Zilber
    Signed-off-by: Roland Dreier

    Erez Zilber
     
  • Signed-off-by: Oliver Pinter
    Signed-off-by: Roland Dreier

    Oliver Pinter
     
  • Signed-off-by: Erez Zilber

    Erez Zilber
     
  • Add missing spaces in the middle of format strings.

    Signed-off-by: Joe Perches
    Signed-off-by: Roland Dreier

    Joe Perches
     

24 Jan, 2008

1 commit


12 Jan, 2008

5 commits

  • Convert xmit to iscsi chunks.

    from michaelc@cs.wisc.edu:

    Bug fixes, more digest integration, sg chaining conversion and other
    sg wrapper changes, coding style sync up, and removal of io fields,
    like pdu_sent, that are not needed.

    Signed-off-by: Olaf Kirch
    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Olaf Kirch
     
  • During root boot and shutdown the target could send us nops.
    At this time iscsid cannot be running, so the target will drop
    the session and the boot or shutdown will hang.

    To handle this and allow us to better control when to check the network
    this patch moves the nop handling to the kernel.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • There is not need to block the session during logout. Since
    we are going to fail the commands that were blocked just fail them
    immediately instead.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • - The default initialization of hdr_max is the minimum -
    sizeof(struct iscsi_cmd) - Once this patch goes into iser the default
    initialization at libiscsi can be removed.
    - This is not yet full support for AHSs at iser end. But it should be easy.
    Just allocate more space at iser_desc right after iscsi_hdr. Than
    at transmission time use ctask->hdr_len to retrieve the total
    size of all iscsi pdu headers. See previous patch at iscsi_tcp.[ch]

    Signed-off-by: Boaz Harrosh
    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Boaz Harrosh
     
  • This patch adds logical unit reset support. This should work for ib_iser,
    but I have not finished testing that driver so it is not hooked in yet.

    This patch also temporarily reverts the iscsi_tcp r2t write out patch.
    That code is completely rewritten in this patchset.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     

25 Nov, 2007

1 commit

  • While adding sg chaining support to iSER, a "for" loop was replaced
    with a "for_each_sg" loop. The "for" loop included the incrementation
    of 2 variables. Only one of them is incremented in the current
    "for_each_sg" loop. This caused iSER to think that all data is
    unaligned, and all data was copied to aligned buffers.

    This patch increments the missing counter inside the "for_each_sg"
    loop whenever necessary.

    Signed-off-by: Erez Zilber
    Signed-off-by: Roland Dreier

    Erez Zilber
     

23 Oct, 2007

1 commit


16 Oct, 2007

1 commit


10 Oct, 2007

1 commit