1. 13 Oct, 2012 1 commit
  2. 24 Mar, 2009 1 commit
    • Boaz Harrosh's avatar
      bsg: add support for tail queuing · 05378940
      Boaz Harrosh authored
      Currently inherited from sg.c bsg will submit asynchronous request
       at the head-of-the-queue, (using "at_head" set in the call to
       blk_execute_rq_nowait()). This is bad in situation where the queues
       are full, requests will execute out of order, and can cause
       starvation of the first submitted requests.
      
      The sg_io_v4->flags member is used and a bit is allocated to denote the
      Q_AT_TAIL. Zero is to queue at_head as before, to be compatible with old
      code at the write/read path. SG_IO code path behavior was changed so to
      be the same as write/read behavior. SG_IO was very rarely used and breaking
      compatibility with it is OK at this stage.
      
      sg_io_hdr at sg.h also has a flags member and uses 3 bits from the first
      nibble and one bit from the last nibble. Even though none of these bits
      are supported by bsg, The second nibble is allocated for use by bsg. Just
      in case.
      Signed-off-by: default avatarBoaz Harrosh <bharrosh@panasas.com>
      CC: Douglas Gilbert <dgilbert@interlog.com>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      05378940
  3. 13 Mar, 2009 1 commit
  4. 22 Apr, 2008 1 commit
    • FUJITA Tomonori's avatar
      [SCSI] bsg: add release callback support · 97f46ae4
      FUJITA Tomonori authored
      This patch adds release callback support, which is called when a bsg
      device goes away. bsg_register_queue() takes a pointer to a callback
      function. This feature is useful for stuff like sas_host that can't
      use the release callback in struct device.
      
      If a caller doesn't need bsg's release callback, it can call
      bsg_register_queue() with NULL pointer (e.g. scsi devices can use
      release callback in struct device so they don't need bsg's callback).
      
      With this patch, bsg uses kref for refcounts on bsg devices instead of
      get/put_device in fops->open/release. bsg calls put_device and the
      caller's release callback (if it was registered) in kref_put's
      release.
      Signed-off-by: default avatarFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
      97f46ae4
  5. 19 Apr, 2008 1 commit
  6. 31 Jul, 2007 1 commit
  7. 24 Jul, 2007 1 commit
  8. 23 Jul, 2007 1 commit
  9. 21 Jul, 2007 1 commit
    • James Bottomley's avatar
      [SCSI] bsg: make class backlinks · 39dca558
      James Bottomley authored
      Currently, bsg doesn't make class backlinks (a process whereby you'd get
      a link to bsg in the device directory in the same way you get one for
      sg).  This is because the bsg device is uninitialised, so the class
      device has nothing it can attach to.  The fix is to make the bsg device
      point to the cdevice of the entity creating the bsg, necessitating
      changing the bsg_register_queue() prototype into a form that takes the
      generic device.
      Acked-by: default avatarFUJITA Tomonori <tomof@acm.org>
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
      39dca558
  10. 17 Jul, 2007 1 commit
  11. 16 Jul, 2007 7 commits