1. 29 Aug, 2014 9 commits
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · d4f03186
      Linus Torvalds authored
      Pull ext4 bugfixes from Ted Ts'o:
       "Ext4 bug fixes for 3.17, to provide better handling of memory
        allocation failures, and to fix some journaling bugs involving
        journal checksums and FALLOC_FL_ZERO_RANGE"
      
      * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: fix same-dir rename when inline data directory overflows
        jbd2: fix descriptor block size handling errors with journal_csum
        jbd2: fix infinite loop when recovering corrupt journal blocks
        ext4: update i_disksize coherently with block allocation on error path
        ext4: fix transaction issues for ext4_fallocate and ext_zero_range
        ext4: fix incorect journal credits reservation in ext4_zero_range
        ext4: move i_size,i_disksize update routines to helper function
        ext4: fix BUG_ON in mb_free_blocks()
        ext4: propagate errors up to ext4_find_entry()'s callers
      d4f03186
    • Linus Torvalds's avatar
      Merge tag 'dm-3.17-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm · ef13c8af
      Linus Torvalds authored
      Pull device mapper fix from Mike Snitzer:
       "Fix a 3.17-rc1 regression introduced by switching the DM crypt target
        to using per-bio data"
      
      * tag 'dm-3.17-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm crypt: fix access beyond the end of allocated space
      ef13c8af
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · 522a15db
      Linus Torvalds authored
      Pull block layer fixes from Jens Axboe:
       "A smaller collection of fixes that have come up since the initial
        merge window pull request.  This contains:
      
         - error handling cleanup and support for larger than 16 byte cdbs in
           sg_io() from Christoph.  The latter just matches what bsg and
           friends support, sg_io() got left out in the merge.
      
         - an option for brd to expose partitions in /proc/partitions.  They
           are hidden by default for compat reasons.  From Dmitry Monakhov.
      
         - a few blk-mq fixes from me - killing a dead/unused flag, fix for
           merging happening even if turned off, and correction of a few
           comments.
      
         - removal of unnecessary ->owner setting in systemace.  From Michal
           Simek.
      
         - two related fixes for a problem with nesting freezing of queues in
           blk-mq.  One from Ming Lei removing an unecessary freeze operation,
           and another from Tejun fixing the nesting regression introduced in
           the merge window.
      
         - fix for a BUG_ON() at bio_endio time when protection info is
           attached and the IO has an error.  From Sagi Grimberg.
      
         - two scsi_ioctl bug fixes for regressions with scsi-mq from Tony
           Battersby.
      
         - a cfq weight update fix and subsequent comment update from Toshiaki
           Makita"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        cfq-iosched: Add comments on update timing of weight
        cfq-iosched: Fix wrong children_weight calculation
        block: fix error handling in sg_io
        fix regression in SCSI_IOCTL_SEND_COMMAND
        scsi-mq: fix requests that use a separate CDB buffer
        block: support > 16 byte CDBs for SG_IO
        block: cleanup error handling in sg_io
        brd: add ram disk visibility option
        block: systemace: Remove .owner field for driver
        blk-mq: blk_mq_freeze_queue() should allow nesting
        blk-mq: correct a few wrong/bad comments
        block: Fix BUG_ON when pi errors occur
        blk-mq: don't allow merges if turned off for the queue
        blk-mq: get rid of unused BLK_MQ_F_SHOULD_SORT flag
        blk-mq: fix WARNING "percpu_ref_kill() called more than once!"
      522a15db
    • Will Deacon's avatar
      alpha: io: implement relaxed accessor macros for writes · 9e36c633
      Will Deacon authored
      write{b,w,l,q}_relaxed are implemented by some architectures in order to
      permit memory-mapped I/O writes with weaker barrier semantics than the
      non-relaxed variants.
      
      This patch implements these write macros for Alpha, in the same vein as
      the relaxed read macros, which are already implemented.
      Acked-by: default avatarRichard Henderson <rth@twiddle.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarMatt Turner <mattst88@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9e36c633
    • Michael Cree's avatar
    • Darrick J. Wong's avatar
      ext4: fix same-dir rename when inline data directory overflows · d80d448c
      Darrick J. Wong authored
      When performing a same-directory rename, it's possible that adding or
      setting the new directory entry will cause the directory to overflow
      the inline data area, which causes the directory to be converted to an
      extent-based directory.  Under this circumstance it is necessary to
      re-read the directory when deleting the old dirent because the "old
      directory" context still points to i_block in the inode table, which
      is now an extent tree root!  The delete fails with an FS error, and
      the subsequent fsck complains about incorrect link counts and
      hardlinked directories.
      
      Test case (originally found with flat_dir_test in the metadata_csum
      test program):
      
      # mkfs.ext4 -O inline_data /dev/sda
      # mount /dev/sda /mnt
      # mkdir /mnt/x
      # touch /mnt/x/changelog.gz /mnt/x/copyright /mnt/x/README.Debian
      # sync
      # for i in /mnt/x/*; do mv $i $i.longer; done
      # ls -la /mnt/x/
      total 0
      -rw-r--r-- 1 root root 0 Aug 25 12:03 changelog.gz.longer
      -rw-r--r-- 1 root root 0 Aug 25 12:03 copyright
      -rw-r--r-- 1 root root 0 Aug 25 12:03 copyright.longer
      -rw-r--r-- 1 root root 0 Aug 25 12:03 README.Debian.longer
      
      (Hey!  Why are there four files now??)
      Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
      Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
      Cc: stable@vger.kernel.org
      d80d448c
    • Darrick J. Wong's avatar
      jbd2: fix descriptor block size handling errors with journal_csum · db9ee220
      Darrick J. Wong authored
      It turns out that there are some serious problems with the on-disk
      format of journal checksum v2.  The foremost is that the function to
      calculate descriptor tag size returns sizes that are too big.  This
      causes alignment issues on some architectures and is compounded by the
      fact that some parts of jbd2 use the structure size (incorrectly) to
      determine the presence of a 64bit journal instead of checking the
      feature flags.
      
      Therefore, introduce journal checksum v3, which enlarges the
      descriptor block tag format to allow for full 32-bit checksums of
      journal blocks, fix the journal tag function to return the correct
      sizes, and fix the jbd2 recovery code to use feature flags to
      determine 64bitness.
      
      Add a few function helpers so we don't have to open-code quite so
      many pieces.
      
      Switching to a 16-byte block size was found to increase journal size
      overhead by a maximum of 0.1%, to convert a 32-bit journal with no
      checksumming to a 32-bit journal with checksum v3 enabled.
      Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
      Reported-by: default avatarTR Reardon <thomas_reardon@hotmail.com>
      Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
      Cc: stable@vger.kernel.org
      db9ee220
    • Darrick J. Wong's avatar
      jbd2: fix infinite loop when recovering corrupt journal blocks · 022eaa75
      Darrick J. Wong authored
      When recovering the journal, don't fall into an infinite loop if we
      encounter a corrupt journal block.  Instead, just skip the block and
      return an error, which fails the mount and thus forces the user to run
      a full filesystem fsck.
      Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
      Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
      Cc: stable@vger.kernel.org
      022eaa75
    • Dmitry Monakhov's avatar
      ext4: update i_disksize coherently with block allocation on error path · 6603120e
      Dmitry Monakhov authored
      In case of delalloc block i_disksize may be less than i_size. So we
      have to update i_disksize each time we allocated and submitted some
      blocks beyond i_disksize.  We weren't doing this on the error paths,
      so fix this.
      
      testcase: xfstest generic/019
      Signed-off-by: default avatarDmitry Monakhov <dmonakhov@openvz.org>
      Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
      Cc: stable@vger.kernel.org
      6603120e
  2. 28 Aug, 2014 20 commits
  3. 27 Aug, 2014 10 commits
    • Dmitry Monakhov's avatar
      ext4: fix transaction issues for ext4_fallocate and ext_zero_range · c174e6d6
      Dmitry Monakhov authored
      After commit f282ac19 we use different transactions for
      preallocation and i_disksize update which result in complain from fsck
      after power-failure.  spotted by generic/019. IMHO this is regression
      because fs becomes inconsistent, even more 'e2fsck -p' will no longer
      works (which drives admins go crazy) Same transaction requirement
      applies ctime,mtime updates
      
      testcase: xfstest generic/019
      Signed-off-by: default avatarDmitry Monakhov <dmonakhov@openvz.org>
      Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
      Cc: stable@vger.kernel.org
      c174e6d6
    • Dmitry Monakhov's avatar
      ext4: fix incorect journal credits reservation in ext4_zero_range · 69dc9536
      Dmitry Monakhov authored
      Currently we reserve only 4 blocks but in worst case scenario
      ext4_zero_partial_blocks() may want to zeroout and convert two
      non adjacent blocks.
      Signed-off-by: default avatarDmitry Monakhov <dmonakhov@openvz.org>
      Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
      Cc: stable@vger.kernel.org
      69dc9536
    • Alex Williamson's avatar
      radeon: Test for PCI root bus before assuming bus->self · 0bd252de
      Alex Williamson authored
      If we assign a Radeon device to a virtual machine, we can no longer
      assume a fixed hardware topology, like the GPU having a parent device.
      This patch simply adds a few pci_is_root_bus() tests to avoid passing
      a NULL pointer to PCI access functions, allowing the radeon driver to
      work in a QEMU 440FX machine with an assigned HD8570 on the emulated
      PCI root bus.
      Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      0bd252de
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · ff0c57ac
      Linus Torvalds authored
      Pull HID fixes from Jiri Kosina:
      
       - fixes for potential memory corruption problems in magicmouse and
         picolcd drivers (the HW would have to be manufactured to be
         deliberately evil to trigger those) which were found by Steven
         Vittitoe
      
       - fix for false error message appearing in dmesg from logitech-dj
         driver, from Benjamin Tissoires
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
        HID: picolcd: sanity check report size in raw_event() callback
        HID: magicmouse: sanity check report size in raw_event() callback
        HID: logitech-dj: prevent false errors to be shown
      ff0c57ac
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · 1fb00cbc
      Linus Torvalds authored
      Pull btrfs fixes from Chris Mason:
       "The biggest of these comes from Liu Bo, who tracked down a hang we've
        been hitting since moving to kernel workqueues (it's a btrfs bug, not
        in the generic code).  His patch needs backporting to 3.16 and 3.15
        stable, which I'll send once this is in.
      
        Otherwise these are assorted fixes.  Most were integrated last week
        during KS, but I wanted to give everyone the chance to test the
        result, so I waited for rc2 to come out before sending"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (24 commits)
        Btrfs: fix task hang under heavy compressed write
        Btrfs: fix filemap_flush call in btrfs_file_release
        Btrfs: fix crash on endio of reading corrupted block
        btrfs: fix leak in qgroup_subtree_accounting() error path
        btrfs: Use right extent length when inserting overlap extent map.
        Btrfs: clone, don't create invalid hole extent map
        Btrfs: don't monopolize a core when evicting inode
        Btrfs: fix hole detection during file fsync
        Btrfs: ensure tmpfile inode is always persisted with link count of 0
        Btrfs: race free update of commit root for ro snapshots
        Btrfs: fix regression of btrfs device replace
        Btrfs: don't consider the missing device when allocating new chunks
        Btrfs: Fix wrong device size when we are resizing the device
        Btrfs: don't write any data into a readonly device when scrub
        Btrfs: Fix the problem that the replace destroys the seed filesystem
        btrfs: Return right extent when fiemap gives unaligned offset and len.
        Btrfs: fix wrong extent mapping for DirectIO
        Btrfs: fix wrong write range for filemap_fdatawrite_range()
        Btrfs: fix wrong missing device counter decrease
        Btrfs: fix unzeroed members in fs_devices when creating a fs from seed fs
        ...
      1fb00cbc
    • Linus Torvalds's avatar
      Merge tag 'trace-fixes-v3.17-rc1-2' of... · c0fe5dcb
      Linus Torvalds authored
      Merge tag 'trace-fixes-v3.17-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
      
      Pull trace buffer epoll hang fix from Steven Rostedt:
       "Josef Bacik found a bug in the ring_buffer_poll_wait() where the
        condition variable (waiters_pending) was set before being added to the
        poll queue via poll_wait().  This allowed for a small race window to
        happen where an event could come in, check the condition variable see
        it set to true, clear it, and then wake all the waiters.  But because
        the waiter set the variable before adding itself to the queue, the
        waker could have cleared the variable after it was set and then miss
        waking it up as it wasn't added to the queue yet.
      
        Discussing this bug, we realized that a memory barrier needed to be
        added too, for the rare case that something polls for a single trace
        event to happen (and just one, no more to come in), and miss the
        wakeup due to memory ordering.  Ideally, a memory barrier needs to be
        added on the writer side too, but as that will kill tracing
        performance and this is for a situation that tracing wasn't even
        designed for (who traces one instance of an event, use a printk
        instead!), this isn't worth adding the barrier.  But we can in the
        future add the barrier for when the buffer goes from empty to the
        first event, as that would cover this case"
      
      * tag 'trace-fixes-v3.17-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        trace: Fix epoll hang when we race with new entries
      c0fe5dcb
    • Jiri Kosina's avatar
      HID: picolcd: sanity check report size in raw_event() callback · 844817e4
      Jiri Kosina authored
      The report passed to us from transport driver could potentially be
      arbitrarily large, therefore we better sanity-check it so that raw_data
      that we hold in picolcd_pending structure are always kept within proper
      bounds.
      
      Cc: stable@vger.kernel.org
      Reported-by: default avatarSteven Vittitoe <scvitti@google.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      844817e4
    • Jiri Kosina's avatar
      HID: magicmouse: sanity check report size in raw_event() callback · c54def7b
      Jiri Kosina authored
      The report passed to us from transport driver could potentially be
      arbitrarily large, therefore we better sanity-check it so that
      magicmouse_emit_touch() gets only valid values of raw_id.
      
      Cc: stable@vger.kernel.org
      Reported-by: default avatarSteven Vittitoe <scvitti@google.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      c54def7b
    • Takashi Iwai's avatar
      ALSA: hda - Set up initial pins for Acer Aspire V5 · 1a22e775
      Takashi Iwai authored
      Acer Aspire V5 doesn't set up the pins correctly at the cold boot
      while the pins are corrected after the warm reboot.  This patch gives
      the proper pin configs statically in the driver as a workaround.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=81561Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      1a22e775
    • Tetsuo Handa's avatar
      tomoyo: Fix pathname calculation breakage. · 8fe7a268
      Tetsuo Handa authored
      Commit 7177a9c4 ("fs: call rename2 if exists") changed
      "struct inode_operations"->rename == NULL if
      "struct inode_operations"->rename2 != NULL .
      
      TOMOYO needs to check for both ->rename and ->rename2 , or
      a system on (e.g.) ext4 filesystem won't boot.
      Signed-off-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Signed-off-by: default avatarSerge E. Hallyn <serge.hallyn@ubuntu.com>
      8fe7a268
  4. 26 Aug, 2014 1 commit