1. 25 Aug, 2012 3 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · a7e546f1
      Linus Torvalds authored
      Pull block-related fixes from Jens Axboe:
      
       - Improvements to the buffered and direct write IO plugging from
         Fengguang.
      
       - Abstract out the mapping of a bio in a request, and use that to
         provide a blk_bio_map_sg() helper.  Useful for mapping just a bio
         instead of a full request.
      
       - Regression fix from Hugh, fixing up a patch that went into the
         previous release cycle (and marked stable, too) attempting to prevent
         a loop in __getblk_slow().
      
       - Updates to discard requests, fixing up the sizing and how we align
         them.  Also a change to disallow merging of discard requests, since
         that doesn't really work properly yet.
      
       - A few drbd fixes.
      
       - Documentation updates.
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        block: replace __getblk_slow misfix by grow_dev_page fix
        drbd: Write all pages of the bitmap after an online resize
        drbd: Finish requests that completed while IO was frozen
        drbd: fix drbd wire compatibility for empty flushes
        Documentation: update tunable options in block/cfq-iosched.txt
        Documentation: update tunable options in block/cfq-iosched.txt
        Documentation: update missing index files in block/00-INDEX
        block: move down direct IO plugging
        block: remove plugging at buffered write time
        block: disable discard request merge temporarily
        bio: Fix potential memory leak in bio_find_or_create_slab()
        block: Don't use static to define "void *p" in show_partition_start()
        block: Add blk_bio_map_sg() helper
        block: Introduce __blk_segment_map_sg() helper
        fs/block-dev.c:fix performance regression in O_DIRECT writes to md block devices
        block: split discard into aligned requests
        block: reorganize rounding of max_discard_sectors
      a7e546f1
    • Linus Torvalds's avatar
      Merge tag 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev · da31ce72
      Linus Torvalds authored
      Pull libata fixes from Jeff Garzik:
       - libata-acpi regression fix
       - additional or corrected drive quirks for ata_blacklist
       - Kconfig text tweaking
       - new PCI IDs
       - pata_atiixp: quirk for MSI motherboard
       - export ahci_dev_classify for an ahci_platform driver
      
      * tag 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
        libata: Add a space to " 2GB ATA Flash Disk" DMA blacklist entry
        [libata] new quirk, lift bridge limits for Buffalo DriveStation Quattro
        [libata] Kconfig: Elaborate that SFF is meant for legacy and PATA stuff
        [libata] acpi: call ata_acpi_gtm during ata port init time
        ata_piix: Add Device IDs for Intel Lynx Point-LP PCH
        ahci: Add Device IDs for Intel Lynx Point-LP PCH
        pata_atiixp: override cable detection on MSI E350DM-E33
        ahci: un-staticize ahci_dev_classify
      da31ce72
    • Prarit Bhargava's avatar
      libata: Add a space to " 2GB ATA Flash Disk" DMA blacklist entry · d17d794c
      Prarit Bhargava authored
      commit d70e551c, Add " 2GB ATA Flash
      Disk"/"ADMA428M" to DMA blacklist, should have added a space before 2GB.
      Signed-off-by: default avatarPrarit Bhargava <prarit@redhat.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      d17d794c
  2. 24 Aug, 2012 8 commits
  3. 23 Aug, 2012 1 commit
    • Hugh Dickins's avatar
      block: replace __getblk_slow misfix by grow_dev_page fix · 676ce6d5
      Hugh Dickins authored
      Commit 91f68c89 ("block: fix infinite loop in __getblk_slow")
      is not good: a successful call to grow_buffers() cannot guarantee
      that the page won't be reclaimed before the immediate next call to
      __find_get_block(), which is why there was always a loop there.
      
      Yesterday I got "EXT4-fs error (device loop0): __ext4_get_inode_loc:3595:
      inode #19278: block 664: comm cc1: unable to read itable block" on console,
      which pointed to this commit.
      
      I've been trying to bisect for weeks, why kbuild-on-ext4-on-loop-on-tmpfs
      sometimes fails from a missing header file, under memory pressure on
      ppc G5.  I've never seen this on x86, and I've never seen it on 3.5-rc7
      itself, despite that commit being in there: bisection pointed to an
      irrelevant pinctrl merge, but hard to tell when failure takes between
      18 minutes and 38 hours (but so far it's happened quicker on 3.6-rc2).
      
      (I've since found such __ext4_get_inode_loc errors in /var/log/messages
      from previous weeks: why the message never appeared on console until
      yesterday morning is a mystery for another day.)
      
      Revert 91f68c89, restoring __getblk_slow() to how it was (plus
      a checkpatch nitfix).  Simplify the interface between grow_buffers()
      and grow_dev_page(), and avoid the infinite loop beyond end of device
      by instead checking init_page_buffers()'s end_block there (I presume
      that's more efficient than a repeated call to blkdev_max_block()),
      returning -ENXIO to __getblk_slow() in that case.
      
      And remove akpm's ten-year-old "__getblk() cannot fail ... weird"
      comment, but that is worrying: are all users of __getblk() really
      now prepared for a NULL bh beyond end of device, or will some oops??
      Signed-off-by: default avatarHugh Dickins <hughd@google.com>
      Cc: stable@vger.kernel.org # 3.0 3.2 3.4 3.5
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      676ce6d5
  4. 22 Aug, 2012 28 commits