1. 08 May, 2007 5 commits
    • Mike Christie's avatar
      [PATCH] ll_rw_blk: fix missing bounce in blk_rq_map_kern() · 821de3a2
      Mike Christie authored
      I think we might just need the blk_map_kern users now. For the async
      execute I added the bounce code already and the block SG_IO has it
      atleady. I think the blk_map_kern bounce code got dropped because we
      thought the correct gfp_t would be passed in. But I think all we need is
      the patch below and all the paths are take care of. The patch is not
      tested. Patch was made against scsi-misc.
      
      The last place that is sending non sg commands may just be md/dm-emc.c
      but that is is just waiting on alasdair to take some patches that fix
      that and a bunch of junk in there including adding bounce support. If
      the patch below is ok though and dm-emc finally gets converted then it
      will have sg and bonce buffer support.
      Signed-off-by: default avatarMike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      821de3a2
    • Jens Axboe's avatar
      [PATCH] splice: always call into page_cache_readahead() · 86aa5ac5
      Jens Axboe authored
      Don't try to guess what the read-ahead logic will do, allow it
      to make its own decisions.
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      86aa5ac5
    • Fengguang Wu's avatar
      [PATCH] splice(): fix interaction with readahead · 9ae9d68c
      Fengguang Wu authored
      Eric Dumazet, thank you for disclosing this bug.
      
      Readahead logic somehow fails to populate the page range with data.
      It can be because
      
      1) the readahead routine is not always called in the following lines of
      
      fs/splice.c:
              if (!loff || nr_pages > 1)
                      page_cache_readahead(mapping, &in->f_ra, in, index, nr_pages);
      
      2) even called, page_cache_readahead() wont guarantee the pages are there.
      It wont submit readahead I/O for pages already in the radix tree, or when
      (ra_pages == 0), or after 256 cache hits.
      
      In your case, it should be because of the retried reads, which lead to
      excessive cache hits, and disables readahead at some time.
      
      And that _one_ failure of readahead blocks the whole read process.
      The application receives EAGAIN and retries the read, but
      __generic_file_splice_read() refuse to make progress:
      
      - in the previous invocation, it has allocated a blank page and inserted it
        into the radix tree, but never has the chance to start I/O for it: the test
        of SPLICE_F_NONBLOCK goes before that.
      
      - in the retried invocation, the readahead code will neither get out of the
        cache hit mode, nor will it submit I/O for an already existing page.
      
      Cc: Eric Dumazet <dada1@cosmosbay.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      9ae9d68c
    • Linus Torvalds's avatar
      Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 · 5b94f675
      Linus Torvalds authored
      * master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
        [SCSI] esp_scsi: Fix section mismatch warnings.
        [VIDEO] sunxvr2500: Fix PCI device ID table.
      5b94f675
    • Linus Torvalds's avatar
      Fix bluetooth HCI sysfs compile · d12db0b0
      Linus Torvalds authored
      More fallout from the removal of "struct subsystem" from the core device
      model.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d12db0b0
  2. 07 May, 2007 35 commits