1. 08 May, 2007 3 commits
    • 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 37 commits