13 Mar, 2008

1 commit

  • Fixes:

    block/genhd.c:361: warning: ignoring return value of ‘class_register’, declared with attribute warn_unused_result

    Signed-off-by: Roland McGrath
    Acked-by: Jeff Garzik
    Signed-off-by: Linus Torvalds

    Roland McGrath
     

04 Mar, 2008

12 commits


19 Feb, 2008

10 commits

  • Clear drain buffer before chaining if the command in question is a
    write.

    Signed-off-by: Tejun Heo
    Signed-off-by: Jens Axboe

    Tejun Heo
     
  • Draining shouldn't be done for commands where overflow may indicate
    data integrity issues. Add dma_drain_needed callback to
    request_queue. Drain buffer is appened iff this function returns
    non-zero.

    Signed-off-by: Tejun Heo
    Cc: James Bottomley
    Signed-off-by: Jens Axboe

    Tejun Heo
     
  • With padding and draining moved into it, block layer now may extend
    requests as directed by queue parameters, so now a request has two
    sizes - the original request size and the extended size which matches
    the size of area pointed to by bios and later by sgs. The latter size
    is what lower layers are primarily interested in when allocating,
    filling up DMA tables and setting up the controller.

    Both padding and draining extend the data area to accomodate
    controller characteristics. As any controller which speaks SCSI can
    handle underflows, feeding larger data area is safe.

    So, this patch makes the primary data length field, request->data_len,
    indicate the size of full data area and add a separate length field,
    request->raw_data_len, for the unmodified request size. The latter is
    used to report to higher layer (userland) and where the original
    request size should be fed to the controller or device.

    Signed-off-by: Tejun Heo
    Cc: James Bottomley
    Signed-off-by: Jens Axboe

    Tejun Heo
     
  • DMA start address and transfer size alignment for PC requests are
    achieved using bio_copy_user() instead of bio_map_user(). This works
    because bio_copy_user() always uses full pages and block DMA alignment
    isn't allowed to go over PAGE_SIZE.

    However, the implementation didn't update the last bio of the request
    to make this padding visible to lower layers. This patch makes
    blk_rq_map_user() extend the last bio such that it includes the
    padding area and the size of area pointed to by the request is
    properly aligned.

    Signed-off-by: Tejun Heo
    Cc: James Bottomley
    Signed-off-by: Jens Axboe

    Tejun Heo
     
  • Currently we fail if someone requests a valid io scheduler, but it's
    modular and not currently loaded. That can happen from a driver init
    asking for a different scheduler, or online switching through sysfs
    as requested by a user.

    This patch makes elevator_get() request_module() to attempt to load
    the appropriate module, instead of requiring that done manually.

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • It's cumbersome to browse a radix tree from start to finish, especially
    since we modify keys when a process exits. So add a hlist for the single
    purpose of browsing over all known cfq_io_contexts, used for exit,
    io prio change, etc.

    This fixes http://bugzilla.kernel.org/show_bug.cgi?id=9948

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • That way the interface is symmetric, and calling blk_rq_unmap_user()
    on the request wont oops.

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • blk_settings_init() can become static.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Jens Axboe

    Adrian Bunk
     
  • blk_ioc_init() can become static.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Jens Axboe

    Adrian Bunk
     
  • request_cachep needlessly became global.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Jens Axboe

    Adrian Bunk
     

08 Feb, 2008

4 commits


01 Feb, 2008

6 commits


31 Jan, 2008

1 commit


30 Jan, 2008

6 commits