10 Feb, 2007

1 commit


08 Dec, 2006

1 commit

  • Replace all uses of kmem_cache_t with struct kmem_cache.

    The patch was generated using the following script:

    #!/bin/sh
    #
    # Replace one string by another in all the kernel sources.
    #

    set -e

    for file in `find * -name "*.c" -o -name "*.h"|xargs grep -l $1`; do
    quilt add $file
    sed -e "1,\$s/$1/$2/g" $file >/tmp/$$
    mv /tmp/$$ $file
    quilt refresh
    done

    The script was run like this

    sh replace kmem_cache_t "struct kmem_cache"

    Signed-off-by: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     

06 Dec, 2006

4 commits


05 Dec, 2006

1 commit


04 Dec, 2006

1 commit


03 Dec, 2006

1 commit


29 Nov, 2006

1 commit


26 Nov, 2006

3 commits

  • The user-space daemon and tgt kernel module need bi-directional
    kernel/user high-performance interface, however, mainline provides no
    standard interface like that.

    This patch adds shared memory interface between kernel and user spaces
    like some other drivers do by using own character device. The
    user-space daemon and tgt kernel module creates shared memory via mmap
    and use it like ring buffer. poll (kernel to user) and write (user to
    kernel) system calls are used for notification.

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

    FUJITA Tomonori
     
  • The core scsi target lib functions.

    TODO:
    - mv md/dm-bio-list.h to linux/bio-list.h so md and us do not have to
    do that weird include.
    - convert scsi_tgt_cmd's work struct to James's execute code. And try
    to kill our scsi_tgt_cmd.
    - add host state checking. We do refcouting so hotplug is partially
    supported, but we need to add state checking to make it easier on
    the LLD.

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

    FUJITA Tomonori
     
  • This patch contains the needed changes to the scsi-ml for the target
    mode support.

    Note, per the last review we moved almost all the fields we added
    to the scsi_cmnd to our internal data structure which we are going
    to try and kill off when we can replace it with support from other
    parts of the kernel.

    The one field we left on was the offset variable. This is needed to handle
    the case where the target gets request that is so large that it cannot
    execute it in one dma operation. So max_secotors or a segment limit may
    limit the size of the transfer. In this case our tgt core code will
    break up the command into managable transfers and send them to the
    LLD one at a time. The offset is then used to tell the LLD where in
    the command we are at. Is there another field on the scsi_cmd for
    that?

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

    FUJITA Tomonori
     

23 Nov, 2006

3 commits

  • If a driver can find its own targets, it can now fill in scan_finished and
    (optionally) scan_start in the scsi_host_template. Then, when it calls
    scsi_scan_host(), it will be called back (from a thread if asynchronous
    discovery is enabled), first to start the scan, and then at intervals to
    check if the scan is completed.

    Also make scsi_prep_async_scan and scsi_finish_async_scan static.

    Signed-off-by: Matthew Wilcox
    Signed-off-by: James Bottomley

    Matthew Wilcox
     
  • James Bottomley
     
  • This patch implements a REQ_DEVICE_RESET handler for the aic94xx
    driver. Like the earlier REQ_TASK_ABORT patch, this patch defers the
    device reset to the Scsi_Host's workqueue, which has the added benefit
    of ensuring that the device reset does not happen at the same time
    that the abort tmfs are being processed. After the phy reset, the
    busted drive should go away and be re-detected later, which is indeed
    what I've seen on both a x260 and a x206m.

    Signed-off-by: Darrick J. Wong
    Signed-off-by: James Bottomley

    Darrick J. Wong
     

22 Nov, 2006

1 commit


16 Nov, 2006

3 commits

  • scsi_assign_lock has been unused for a long time and is a bad idea
    in general, so kill it.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: James Bottomley

    Christoph Hellwig
     
  • This patch adds an external function, sas_abort_task, to enable LLDDs
    to abort sas_tasks. It also adds a work_struct so that the actual
    work of aborting a task can be shifted from tasklet context (in the
    LLDD) onto the scsi_host's workqueue.

    Signed-off-by: Darrick J. Wong
    Signed-off-by: James Bottomley

    Darrick J. Wong
     
  • This patch adds an EH done queue to sas_ha, converts the error handling
    strategy function and the sas_scsi_task_done functions in libsas to use
    the scsi_eh_* commands for error'd commands, and adds checks for the
    INITIATOR_ABORTED flag so that we do the right thing if a sas_task has
    been aborted by the initiator.

    Signed-off-by: Darrick J. Wong
    Signed-off-by: James Bottomley

    Darrick J. Wong
     

26 Oct, 2006

4 commits

  • Signed-off-by: FUJITA Tomonori
    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    FUJITA Tomonori
     
  • This patch adds support for REPORT TARGET PORT GROUPS. This is used
    eg for the multipathing priority callout to determine the path
    priority.
    With this patch multipath-tools can use the existing mpath_prio_alua
    callout to exercise the path priority grouping.

    Signed-off-by: Hannes Reinecke
    Signed-off-by: Douglas Gilbert
    Signed-off-by: James Bottomley

    Hannes Reinecke
     
  • If connection creation fails we end up calling list_del
    on a invalid struct. This then causes an oops. We are not
    acutally using the lists (old MCS code we thought might
    be useful elsewhere) so this patch just removes that
    code.

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

    Mike Christie
     
  • The transport class recv mempools are causing slab corruption.
    We could hack around netlink's lack of mempool support like dm,
    but it is just too ulgy (dm's hack is ugly enough :) when you need
    to support broadcast.

    This patch removes the recv pools. We have not used them even when
    we were allocting 20 MB per session and the system only had 64 MBs.
    And we have no pools on the send side and have been ok there. When
    Peter's work gets merged we can use that since the network guys
    are in favor of that approach and are not going to add mempools
    everywhere.

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

    Mike Christie
     

12 Oct, 2006

1 commit

  • Since it often takes around 20-30 seconds to scan a scsi bus, it's
    highly advantageous to do this in parallel with other things. The bulk
    of this patch is ensuring that devices don't change numbering, and that
    all devices are discovered prior to trying to start init. For those
    who build SCSI as modules, there's a new scsi_wait_scan module that will
    ensure all bus scans are finished.

    This patch only handles drivers which call scsi_scan_host. Fibre Channel,
    SAS, SATA, USB and Firewire all need additional work.

    Signed-off-by: Matthew Wilcox
    Signed-off-by: James Bottomley

    Matthew Wilcox
     

05 Oct, 2006

2 commits

  • * master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (54 commits)
    [SCSI] Initial Commit of qla4xxx
    [SCSI] raid class: handle component-add errors
    [SCSI] SCSI megaraid_sas: handle thrown errors
    [SCSI] SCSI aic94xx: handle sysfs errors
    [SCSI] SCSI st: fix error handling in module init, sysfs
    [SCSI] SCSI sd: fix module init/exit error handling
    [SCSI] SCSI osst: add error handling to module init, sysfs
    [SCSI] scsi: remove hosts.h
    [SCSI] scsi: Scsi_Cmnd convertion in aic7xxx_old.c
    [SCSI] megaraid_sas: sets ioctl timeout and updates version,changelog
    [SCSI] megaraid_sas: adds tasklet for cmd completion
    [SCSI] megaraid_sas: prints pending cmds before setting hw_crit_error
    [SCSI] megaraid_sas: function pointer for disable interrupt
    [SCSI] megaraid_sas: frame count optimization
    [SCSI] megaraid_sas: FW transition and q size changes
    [SCSI] qla2xxx: Update version number to 8.01.07-k2.
    [SCSI] qla2xxx: Stall mid-layer error handlers while rport is blocked.
    [SCSI] qla2xxx: Add MODULE_FIRMWARE tags.
    [SCSI] qla2xxx: Add support for host port state FC transport attribute.
    [SCSI] qla2xxx: Add support for fabric name FC transport attribute.
    ...

    Linus Torvalds
     
  • This was necessitated by the need for a function to get back
    to a scsi_cmnd, when an hba the posts its (corresponding) completion
    interrupt with a block layer tag as its reference.

    Signed-off-by: Mike Christie
    Signed-off-by: David Somayajulu
    Signed-off-by: Jens Axboe

    David C Somayajulu
     

01 Oct, 2006

3 commits

  • device_reprobe() should return an error code. When it does so,
    scsi_device_reprobe() should propagate it back.

    Acked-by: Jeff Garzik
    Signed-off-by: Andrew Morton
    Signed-off-by: James Bottomley
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Make it possible to disable the block layer. Not all embedded devices require
    it, some can make do with just JFFS2, NFS, ramfs, etc - none of which require
    the block layer to be present.

    This patch does the following:

    (*) Introduces CONFIG_BLOCK to disable the block layer, buffering and blockdev
    support.

    (*) Adds dependencies on CONFIG_BLOCK to any configuration item that controls
    an item that uses the block layer. This includes:

    (*) Block I/O tracing.

    (*) Disk partition code.

    (*) All filesystems that are block based, eg: Ext3, ReiserFS, ISOFS.

    (*) The SCSI layer. As far as I can tell, even SCSI chardevs use the
    block layer to do scheduling. Some drivers that use SCSI facilities -
    such as USB storage - end up disabled indirectly from this.

    (*) Various block-based device drivers, such as IDE and the old CDROM
    drivers.

    (*) MTD blockdev handling and FTL.

    (*) JFFS - which uses set_bdev_super(), something it could avoid doing by
    taking a leaf out of JFFS2's book.

    (*) Makes most of the contents of linux/blkdev.h, linux/buffer_head.h and
    linux/elevator.h contingent on CONFIG_BLOCK being set. sector_div() is,
    however, still used in places, and so is still available.

    (*) Also made contingent are the contents of linux/mpage.h, linux/genhd.h and
    parts of linux/fs.h.

    (*) Makes a number of files in fs/ contingent on CONFIG_BLOCK.

    (*) Makes mm/bounce.c (bounce buffering) contingent on CONFIG_BLOCK.

    (*) set_page_dirty() doesn't call __set_page_dirty_buffers() if CONFIG_BLOCK
    is not enabled.

    (*) fs/no-block.c is created to hold out-of-line stubs and things that are
    required when CONFIG_BLOCK is not set:

    (*) Default blockdev file operations (to give error ENODEV on opening).

    (*) Makes some /proc changes:

    (*) /proc/devices does not list any blockdevs.

    (*) /proc/diskstats and /proc/partitions are contingent on CONFIG_BLOCK.

    (*) Makes some compat ioctl handling contingent on CONFIG_BLOCK.

    (*) If CONFIG_BLOCK is not defined, makes sys_quotactl() return -ENODEV if
    given command other than Q_SYNC or if a special device is specified.

    (*) In init/do_mounts.c, no reference is made to the blockdev routines if
    CONFIG_BLOCK is not defined. This does not prohibit NFS roots or JFFS2.

    (*) The bdflush, ioprio_set and ioprio_get syscalls can now be absent (return
    error ENOSYS by way of cond_syscall if so).

    (*) The seclvl_bd_claim() and seclvl_bd_release() security calls do nothing if
    CONFIG_BLOCK is not set, since they can't then happen.

    Signed-Off-By: David Howells
    Signed-off-by: Jens Axboe

    David Howells
     
  • Right now ->flags is a bit of a mess: some are request types, and
    others are just modifiers. Clean this up by splitting it into
    ->cmd_type and ->cmd_flags. This allows introduction of generic
    Linux block message types, useful for sending generic Linux commands
    to block devices.

    Signed-off-by: Jens Axboe

    Jens Axboe
     

28 Sep, 2006

1 commit


27 Sep, 2006

1 commit

  • This sg driver patch addresses the problem with larger
    page sizes reported by Brian King in this post:
    http://marc.theaimsgroup.com/?l=linux-scsi&m=115867718623631&w=2
    Some other related matters are also addressed. Some of these
    prevent oopses when the SG_SCATTER_SZ or scatter_elem_sz are
    set to inappropriate values.

    The scatter_elem_sz has been tested up to 4 MB which should
    make the largest data transfer with one SCSI command, 32 MB
    less one block, achievable with a relatively small number
    of elements in the scatter gather list.

    ChangeLog:
    - add scatter_elem_sz boot time parameter and sysfs module
    parameter that is initialized to SG_SCATTER_SZ
    - the driver will then adjust scatter_elem_sz to be the
    max(given(scatter_elem_sz), PAGE_SIZE)
    It will also round it up, if necessary, to be a power
    of two
    - clean up sg.h header, correct bad urls and some statements
    that are no longer valid
    - make the def_reserved_size sysfs module attribute writable

    Signed-off-by: Douglas Gilbert
    Signed-off-by: James Bottomley

    Douglas Gilbert
     

25 Sep, 2006

1 commit


24 Sep, 2006

2 commits


19 Sep, 2006

1 commit


08 Sep, 2006

3 commits


05 Sep, 2006

1 commit

  • This patch adds the following functionality to the FC transport:

    - dev_loss_tmo LLDD callback :
    Called to essentially confirm the deletion of an rport. Thus, it is
    called whenever the dev_loss_tmo fires, or when the rport is deleted
    due to other circumstances (module unload, etc). It is expected that
    the callback will initiate the termination of any outstanding i/o on
    the rport.

    - fast_io_fail_tmo and LLD callback:
    There are some cases where it may take a long while to truly determine
    device loss, but the system is in a multipathing configuration that if
    the i/o was failed quickly (faster than dev_loss_tmo), it could be
    redirected to a different path and completed sooner.

    Many thanks to Mike Reed who cleaned up the initial RFC in support
    of this post.

    The original RFC is at:
    http://marc.theaimsgroup.com/?l=linux-scsi&m=115505981027246&w=2

    Signed-off-by: James Smart
    Signed-off-by: James Bottomley

    James Smart