12 Nov, 2014

1 commit

  • Further to a January 2013 thread titled: "[PATCH] SG_SCSI_RESET ioctl
    should only perform requested operation" by Jeremy Linton a patch (v3)
    is presented that expands the existing ioctl to include "no_escalate"
    versions to the existing resets. This requires no changes to SCSI low
    level drivers (LLDs); it adds several more finely tuned reset options
    to the user space. For example:

    /* This call remains the same, with the same escalating semantics
    * if the device (LU) reset fail. That is: on failure to try a
    * target reset and if that fails, try a bus reset, and if that fails
    * try a host (i.e. LLD) reset. */
    val = SG_SCSI_RESET_DEVICE;
    res = ioctl(, SG_SCSI_RESET, &val);

    /* What follows is a new option introduced by this patch series. Only
    * a device reset is attempted. If that fails then an appropriate
    * error code is provided. N.B. There is no reset escalation. */
    val = SG_SCSI_RESET_DEVICE | SG_SCSI_RESET_NO_ESCALATE;
    res = ioctl(, SG_SCSI_RESET, &val);

    Signed-off-by: Douglas Gilbert
    Reviewed-by: Jeremy Linton
    Reviewed-by: Hannes Reinecke
    Signed-off-by: Christoph Hellwig

    Douglas Gilbert
     

14 Aug, 2014

1 commit

  • Pull block driver changes from Jens Axboe:
    "Nothing out of the ordinary here, this pull request contains:

    - A big round of fixes for bcache from Kent Overstreet, Slava Pestov,
    and Surbhi Palande. No new features, just a lot of fixes.

    - The usual round of drbd updates from Andreas Gruenbacher, Lars
    Ellenberg, and Philipp Reisner.

    - virtio_blk was converted to blk-mq back in 3.13, but now Ming Lei
    has taken it one step further and added support for actually using
    more than one queue.

    - Addition of an explicit SG_FLAG_Q_AT_HEAD for block/bsg, to
    compliment the the default behavior of adding to the tail of the
    queue. From Douglas Gilbert"

    * 'for-3.17/drivers' of git://git.kernel.dk/linux-block: (86 commits)
    bcache: Drop unneeded blk_sync_queue() calls
    bcache: add mutex lock for bch_is_open
    bcache: Correct printing of btree_gc_max_duration_ms
    bcache: try to set b->parent properly
    bcache: fix memory corruption in init error path
    bcache: fix crash with incomplete cache set
    bcache: Fix more early shutdown bugs
    bcache: fix use-after-free in btree_gc_coalesce()
    bcache: Fix an infinite loop in journal replay
    bcache: fix crash in bcache_btree_node_alloc_fail tracepoint
    bcache: bcache_write tracepoint was crashing
    bcache: fix typo in bch_bkey_equal_header
    bcache: Allocate bounce buffers with GFP_NOWAIT
    bcache: Make sure to pass GFP_WAIT to mempool_alloc()
    bcache: fix uninterruptible sleep in writeback thread
    bcache: wait for buckets when allocating new btree root
    bcache: fix crash on shutdown in passthrough mode
    bcache: fix lockdep warnings on shutdown
    bcache allocator: send discards with correct size
    bcache: Fix to remove the rcu_sched stalls.
    ...

    Linus Torvalds
     

18 Jul, 2014

2 commits

  • When the SG_IO ioctl was copied into the block layer and
    later into the bsg driver, subtle differences emerged.

    One difference is the way injected commands are queued through
    the block layer (i.e. this is not SCSI device queueing nor SATA
    NCQ). Summarizing:
    - SG_IO in the block layer: blk_exec*(at_head=false)
    - sg SG_IO: at_head=true
    - bsg SG_IO: at_head=true

    Some time ago Boaz Harrosh introduced a sg v4 flag called
    BSG_FLAG_Q_AT_TAIL to override the bsg driver default.
    This patch does the equivalent for the sg driver.

    ChangeLog:
    Introduce SG_FLAG_Q_AT_TAIL flag to cause commands
    to be injected into the block layer with
    at_head=false.

    Signed-off-by: Douglas Gilbert
    Reviewed-by: Mike Christie
    Reviewed-by: Ewan D. Milne
    Signed-off-by: Christoph Hellwig

    Douglas Gilbert
     
  • - remove the 16 byte CDB (SCSI command) length limit from the sg driver
    by handling longer CDBs the same way as the bsg driver. Remove comment
    from sg.h public interface about the cmd_len field being limited to 16
    bytes.
    - remove some dead code caused by this change
    - cleanup comment block at the top of sg.h, fix urls

    Signed-off-by: Douglas Gilbert
    Reviewed-by: Mike Christie
    Reviewed-by: Hannes Reinecke
    Signed-off-by: Christoph Hellwig

    Douglas Gilbert
     

02 Jul, 2014

1 commit

  • After the SG_IO ioctl was copied into the block layer and
    later into the bsg driver, subtle differences emerged.

    One difference is the way injected commands are queued through
    the block layer (i.e. this is not SCSI device queueing nor SATA
    NCQ). Summarizing:
    - SG_IO on block layer device: blk_exec*(at_head=false)
    - sg device SG_IO: at_head=true
    - bsg device SG_IO: at_head=true

    Some time ago Boaz Harrosh introduced a sg v4 flag called
    BSG_FLAG_Q_AT_TAIL to override the bsg driver default. A
    recent patch titled: "sg: add SG_FLAG_Q_AT_TAIL flag"
    allowed the sg driver default to be overridden. This patch
    allows a SG_IO ioctl sent to a block layer device to have
    its default overridden.

    ChangeLog:
    - introduce SG_FLAG_Q_AT_HEAD flag in sg.h to cause
    commands that are injected via a block layer
    device SG_IO ioctl to set at_head=true
    - make comments clearer about queueing in sg.h since the
    header is used both by the sg device and block layer
    device implementations of the SG_IO ioctl.
    - introduce BSG_FLAG_Q_AT_HEAD in bsg.h for compatibility
    (it does nothing) and update comments.

    Signed-off-by: Douglas Gilbert
    Reviewed-by: Christoph Hellwig
    Reviewed-by: Mike Christie
    Signed-off-by: Jens Axboe

    Douglas Gilbert
     

13 Mar, 2010

1 commit

  • Extern declarations in sysctl.c should be moved to their own header file,
    and then include them in relavant .c files.

    Move sg_big_buff extern declaration to scsi/sg.h

    Signed-off-by: Dave Young
    Acked-by: Doug Gilbert
    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Young
     

12 Jul, 2008

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
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds