1. 21 11月, 2014 17 次提交
    • S
      Btrfs: check_int: use the known block location · f382e465
      Stefan Behrens 提交于
      The xfstest btrfs/014 which tests the balance operation caused issues with
      the check_int module. The attempt was made to use btrfs_map_block() to
      find the physical location for a written block. However, this was not
      at all needed since the location of the written block was known since
      a hook to submit_bio() was the reason for entering the check_int module.
      Additionally, after a block relocation it happened that btrfs_map_block()
      failed causing misleading error messages afterwards.
      
      This patch changes the check_int module to use the known information of
      the physical location from the bio.
      Reported-by: NWang Shilong <wangshilong1991@gmail.com>
      Signed-off-by: NStefan Behrens <sbehrens@giantdisaster.de>
      Tested-by: NWang Shilong <wangshilong1991@gmail.com>
      Signed-off-by: NChris Mason <clm@fb.com>
      f382e465
    • F
      Btrfs: avoid returning -ENOMEM in convert_extent_bit() too early · c8fd3de7
      Filipe Manana 提交于
      We try to allocate an extent state before acquiring the tree's spinlock
      just in case we end up needing to split an existing extent state into two.
      If that allocation failed, we would return -ENOMEM.
      However, our only single caller (transaction/log commit code), passes in
      an extent state that was cached from a call to find_first_extent_bit() and
      that has a very high chance to match exactly the input range (always true
      for a transaction commit and very often, but not always, true for a log
      commit) - in this case we end up not needing at all that initial extent
      state used for an eventual split. Therefore just don't return -ENOMEM if
      we can't allocate the temporary extent state, since we might not need it
      at all, and if we end up needing one, we'll do it later anyway.
      Signed-off-by: NFilipe Manana <fdmanana@suse.com>
      Signed-off-by: NChris Mason <clm@fb.com>
      c8fd3de7
    • F
      Btrfs: make find_first_extent_bit be able to cache any state · e38e2ed7
      Filipe Manana 提交于
      Right now the only caller of find_first_extent_bit() that is interested
      in caching extent states (transaction or log commit), never gets an extent
      state cached. This is because find_first_extent_bit() only caches states
      that have at least one of the flags EXTENT_IOBITS or EXTENT_BOUNDARY, and
      the transaction/log commit caller always passes a tree that doesn't have
      ever extent states with any of those flags (they can only have one of the
      following flags: EXTENT_DIRTY, EXTENT_NEW or EXTENT_NEED_WAIT).
      
      This change together with the following one in the patch series (titled
      "Btrfs: avoid returning -ENOMEM in convert_extent_bit() too early") will
      help reduce significantly the chances of calls to convert_extent_bit()
      fail with -ENOMEM when called from the transaction/log commit code.
      Signed-off-by: NFilipe Manana <fdmanana@suse.com>
      Signed-off-by: NChris Mason <clm@fb.com>
      e38e2ed7
    • F
      Btrfs: deal with convert_extent_bit errors to avoid fs corruption · 663dfbb0
      Filipe Manana 提交于
      When committing a transaction or a log, we look for btree extents that
      need to be durably persisted by searching for ranges in a io tree that
      have some bits set (EXTENT_DIRTY or EXTENT_NEW). We then attempt to clear
      those bits and set the EXTENT_NEED_WAIT bit, with calls to the function
      convert_extent_bit, and then start writeback for the extents.
      
      That function however can return an error (at the moment only -ENOMEM
      is possible, specially when it does GFP_ATOMIC allocation requests
      through alloc_extent_state_atomic) - that means the ranges didn't got
      the EXTENT_NEED_WAIT bit set (or at least not for the whole range),
      which in turn means a call to btrfs_wait_marked_extents() won't find
      those ranges for which we started writeback, causing a transaction
      commit or a log commit to persist a new superblock without waiting
      for the writeback of extents in that range to finish first.
      
      Therefore if a crash happens after persisting the new superblock and
      before writeback finishes, we have a superblock pointing to roots that
      weren't fully persisted or roots that point to nodes or leafs that weren't
      fully persisted, causing all sorts of unexpected/bad behaviour as we endup
      reading garbage from disk or the content of some node/leaf from a past
      generation that got cowed or deleted and is no longer valid (for this later
      case we end up getting error messages like "parent transid verify failed on
      X wanted Y found Z" when reading btree nodes/leafs from disk).
      Signed-off-by: NFilipe Manana <fdmanana@suse.com>
      Signed-off-by: NChris Mason <clm@fb.com>
      663dfbb0
    • E
      Btrfs: return failure if btrfs_dev_replace_finishing() failed · 2fc9f6ba
      Eryu Guan 提交于
      device replace could fail due to another running scrub process or any
      other errors btrfs_scrub_dev() may hit, but this failure doesn't get
      returned to userspace.
      
      The following steps could reproduce this issue
      
      	mkfs -t btrfs -f /dev/sdb1 /dev/sdb2
      	mount /dev/sdb1 /mnt/btrfs
      	while true; do btrfs scrub start -B /mnt/btrfs >/dev/null 2>&1; done &
      	btrfs replace start -Bf /dev/sdb2 /dev/sdb3 /mnt/btrfs
      	# if this replace succeeded, do the following and repeat until
      	# you see this log in dmesg
      	# BTRFS: btrfs_scrub_dev(/dev/sdb2, 2, /dev/sdb3) failed -115
      	#btrfs replace start -Bf /dev/sdb3 /dev/sdb2 /mnt/btrfs
      
      	# once you see the error log in dmesg, check return value of
      	# replace
      	echo $?
      
      Introduce a new dev replace result
      
      BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS
      
      to catch -EINPROGRESS explicitly and return other errors directly to
      userspace.
      Signed-off-by: NEryu Guan <guaneryu@gmail.com>
      Signed-off-by: NChris Mason <clm@fb.com>
      2fc9f6ba
    • S
      Btrfs: fix allocationg memory failure for btrfsic_state structure · 6b3a4d60
      Shilong Wang 提交于
      size of @btrfsic_state needs more than 2M, it is very likely to
      fail allocating memory using kzalloc(). see following mesage:
      
      [91428.902148] Call Trace:
      [<ffffffff816f6e0f>] dump_stack+0x4d/0x66
      [<ffffffff811b1c7f>] warn_alloc_failed+0xff/0x170
      [<ffffffff811b66e1>] __alloc_pages_nodemask+0x951/0xc30
      [<ffffffff811fd9da>] alloc_pages_current+0x11a/0x1f0
      [<ffffffff811b1e0b>] ? alloc_kmem_pages+0x3b/0xf0
      [<ffffffff811b1e0b>] alloc_kmem_pages+0x3b/0xf0
      [<ffffffff811d1018>] kmalloc_order+0x18/0x50
      [<ffffffff811d1074>] kmalloc_order_trace+0x24/0x140
      [<ffffffffa06c097b>] btrfsic_mount+0x8b/0xae0 [btrfs]
      [<ffffffff810af555>] ? check_preempt_curr+0x85/0xa0
      [<ffffffff810b2de3>] ? try_to_wake_up+0x103/0x430
      [<ffffffffa063d200>] open_ctree+0x1bd0/0x2130 [btrfs]
      [<ffffffffa060fdde>] btrfs_mount+0x62e/0x8b0 [btrfs]
      [<ffffffff811fd9da>] ? alloc_pages_current+0x11a/0x1f0
      [<ffffffff811b0a5e>] ? __get_free_pages+0xe/0x50
      [<ffffffff81230429>] mount_fs+0x39/0x1b0
      [<ffffffff812509fb>] vfs_kern_mount+0x6b/0x150
      [<ffffffff812537fb>] do_mount+0x27b/0xc30
      [<ffffffff811b0a5e>] ? __get_free_pages+0xe/0x50
      [<ffffffff812544f6>] SyS_mount+0x96/0xf0
      [<ffffffff81701970>] system_call_fastpath+0x16/0x1b
      
      Since we are allocating memory for hash table array, so
      it will be good if we could allocate continuous pages here.
      
      Fix this problem by firstly trying kzalloc(), if we fail,
      use vzalloc() instead.
      Signed-off-by: NWang Shilong <wangshilong1991@gmail.com>
      Signed-off-by: NChris Mason <clm@fb.com>
      6b3a4d60
    • F
      Btrfs: report error after failure inlining extent in compressed write path · e6eb4314
      Filipe Manana 提交于
      If cow_file_range_inline() failed, when called from compress_file_range(),
      we were tagging the locked page for writeback, end its writeback and unlock it,
      but not marking it with an error nor setting AS_EIO in inode's mapping flags.
      
      This made it impossible for a caller of filemap_fdatawrite_range (writepages)
      or filemap_fdatawait_range() to know that an error happened. And the return
      value of compress_file_range() is useless because it's returned to a workqueue
      task and not to the task calling filemap_fdatawrite_range (writepages).
      
      This change applies on top of the previous patchset starting at the patch
      titled:
      
          "[1/5] Btrfs: set page and mapping error on compressed write failure"
      
      Which changed extent_clear_unlock_delalloc() to use SetPageError and
      mapping_set_error().
      Signed-off-by: NFilipe Manana <fdmanana@suse.com>
      Signed-off-by: NChris Mason <clm@fb.com>
      e6eb4314
    • F
      Btrfs: add helper btrfs_fdatawrite_range · 728404da
      Filipe Manana 提交于
      To avoid duplicating this double filemap_fdatawrite_range() call for
      inodes with async extents (compressed writes) so often.
      Signed-off-by: NFilipe Manana <fdmanana@suse.com>
      Signed-off-by: NChris Mason <clm@fb.com>
      728404da
    • F
      Btrfs: correctly flush compressed data before/after direct IO · 075bdbdb
      Filipe Manana 提交于
      For compressed writes, after doing the first filemap_fdatawrite_range() we
      don't get the pages tagged for writeback immediately. Instead we create
      a workqueue task, which is run by other kthread, and keep the pages locked.
      That other kthread compresses data, creates the respective ordered extent/s,
      tags the pages for writeback and unlocks them. Therefore we need a second
      call to filemap_fdatawrite_range() if we have compressed writes, as this
      second call will wait for the pages to become unlocked, then see they became
      tagged for writeback and finally wait for the writeback to finish.
      Signed-off-by: NFilipe Manana <fdmanana@suse.com>
      Signed-off-by: NChris Mason <clm@fb.com>
      075bdbdb
    • F
      Btrfs: make inode.c:compress_file_range() return void · c44f649e
      Filipe Manana 提交于
      Its return value is useless, its single caller ignores it and can't do
      anything with it anyway, since it's a workqueue task and not the task
      calling filemap_fdatawrite_range (writepages) nor filemap_fdatawait_range().
      Failure is communicated to such functions via start and end of writeback
      with the respective pages tagged with an error and AS_EIO flag set in the
      inode's imapping.
      Signed-off-by: NFilipe Manana <fdmanana@suse.com>
      Signed-off-by: NChris Mason <clm@fb.com>
      c44f649e
    • S
      Btrfs: fix incorrect compression ratio detection · 4bcbb332
      Shilong Wang 提交于
      Steps to reproduce:
       # mkfs.btrfs -f /dev/sdb
       # mount -t btrfs /dev/sdb /mnt -o compress=lzo
       # dd if=/dev/zero of=/mnt/data bs=$((33*4096)) count=1
      
      after previous steps, inode will be detected as bad compression ratio,
      and NOCOMPRESS flag will be set for that inode.
      
      Reason is that compress have a max limit pages every time(128K), if a
      132k write in, it will be splitted into two write(128k+4k), this bug
      is a leftover for commit 68bb462d(Btrfs: don't compress for a small write)
      
      Fix this problem by checking every time before compression, if it is a
      small write(<=blocksize), we bail out and fall into nocompression directly.
      Signed-off-by: NWang Shilong <wangshilong1991@gmail.com>
      Reviewed-by: NMiao Xie <miaox@cn.fujitsu.com>
      Signed-off-by: NChris Mason <clm@fb.com>
      4bcbb332
    • F
      Btrfs: don't ignore compressed bio write errors · 7bdcefc1
      Filipe Manana 提交于
      Our compressed bio write end callback was essentially ignoring the error
      parameter. When a write error happens, it must pass a value of 0 to the
      inode's write_page_end_io_hook callback, SetPageError on the respective
      pages and set AS_EIO in the inode's mapping flags, so that a call to
      filemap_fdatawait_range() / filemap_fdatawait() can find out that errors
      happened (we surely don't want silent failures on fsync for example).
      Signed-off-by: NFilipe Manana <fdmanana@suse.com>
      Signed-off-by: NChris Mason <clm@fb.com>
      7bdcefc1
    • F
      Btrfs: make inode.c:submit_compressed_extents() return void · dec8f175
      Filipe Manana 提交于
      Its return value is completely ignored by its single caller and it's
      useless anyway, since errors are indicated through SetPageError and
      the bit AS_EIO set in the flags of the inode's mapping. The caller
      can't do anything with the value, as it's invoked from a workqueue
      task and not by the task calling filemap_fdatawrite_range (which calls
      the writepages address space callback, which in turn calls the inode's
      fill_delalloc callback).
      Signed-off-by: NFilipe Manana <fdmanana@suse.com>
      Signed-off-by: NChris Mason <clm@fb.com>
      dec8f175
    • F
      Btrfs: process all async extents on compressed write failure · 3d7a820f
      Filipe Manana 提交于
      If we had an error when processing one of the async extents from our list,
      we were not processing the remaining async extents, meaning we would leak
      those async_extent structs, never release the pages with the compressed
      data and never unlock and clear the dirty flag from the inode's pages (those
      that correspond to the uncompressed content).
      Signed-off-by: NFilipe Manana <fdmanana@suse.com>
      Signed-off-by: NChris Mason <clm@fb.com>
      3d7a820f
    • F
      Btrfs: don't leak pages and memory on compressed write error · 40ae837b
      Filipe Manana 提交于
      In inode.c:submit_compressed_extents(), if we fail before calling
      btrfs_submit_compressed_write(), or when that function fails, we
      were freeing the async_extent structure without releasing its pages
      and freeing the pages array.
      Signed-off-by: NFilipe Manana <fdmanana@suse.com>
      Signed-off-by: NChris Mason <clm@fb.com>
      40ae837b
    • F
      Btrfs: fix hang on compressed write error · fce2a4e6
      Filipe Manana 提交于
      In inode.c:submit_compressed_extents(), before calling btrfs_submit_compressed_write()
      we start writeback for all pages, clear their dirty flag, unlock them, etc, but if
      btrfs_submit_compressed_write() fails (at the moment it can only fail with -ENOMEM),
      we never end the writeback on the pages, so any filemap_fdatawait_range() call will
      hang forever. We were also not calling the writepage end io hook, which means the
      corresponding ordered extent will never complete and all its waiters will block
      forever, such as a full fsync (via btrfs_wait_ordered_range()).
      Signed-off-by: NFilipe Manana <fdmanana@suse.com>
      Signed-off-by: NChris Mason <clm@fb.com>
      fce2a4e6
    • F
      Btrfs: set page and mapping error on compressed write failure · 704de49d
      Filipe Manana 提交于
      If we fail in submit_compressed_extents() before calling btrfs_submit_compressed_write(),
      we start and end the writeback for the pages (clear their dirty flag, unlock them, etc)
      but we don't tag the pages, nor the inode's mapping, with an error. This makes it
      impossible for a caller of filemap_fdatawait_range() (fsync, or transaction commit
      for e.g.) know that there was an error.
      
      Note that the return value of submit_compressed_extents() is useless, as that function
      is executed by a workqueue task and not directly by the fill_delalloc callback. This
      means the writepage/s callbacks of the inode's address space operations don't get that
      return value.
      Signed-off-by: NFilipe Manana <fdmanana@suse.com>
      Signed-off-by: NChris Mason <clm@fb.com>
      704de49d
  2. 17 11月, 2014 12 次提交
  3. 16 11月, 2014 6 次提交
    • L
      Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm · 5f01feb8
      Linus Torvalds 提交于
      Pull ARM fixes from Russell King:
       "Two fixes this time, one to ensure that the kuser helper option
        depends on MMU as they aren't available for noMMU targets (and if the
        option is selected, we end up oopsing.)
      
        The second fix plugs a corner case with the decompressor, ensuring
        that the instruction stream can see the relocated code in every case
        on ARMv7 CPUs"
      
      * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
        ARM: 8198/1: make kuser helpers depend on MMU
        ARM: 8191/1: decompressor: ensure I-side picks up relocated code
      5f01feb8
    • L
      Merge branch 'parisc-3.18-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 555e5986
      Linus Torvalds 提交于
      Pull parisc updates from Helge Deller:
       "Changes include:
         - wire up the bpf syscall
         - remove CONFIG_64BIT usage from some userspace-exported header files
         - use compat functions for msgctl, shmat, shmctl and semtimedop
           syscalls"
      
      * 'parisc-3.18-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: Avoid using CONFIG_64BIT in userspace exported headers
        parisc: Use compat layer for msgctl, shmat, shmctl and semtimedop syscalls
        parisc: Use BUILD_BUG() instead of undefined functions
        parisc: Wire up bpf syscall
      555e5986
    • L
      Merge tag 'for-v3.18-rc' of git://git.infradead.org/battery-2.6 · ec7de656
      Linus Torvalds 提交于
      Pull power supply updates from Sebastian Reichel:
       "Power supply and reset changes for the v3.18-rc:
      
         - misc. charger-manager fixes
         - year 2038 fix in ab8500_fg
         - fix error handling of bq2415x_charger"
      
      * tag 'for-v3.18-rc' of git://git.infradead.org/battery-2.6:
        power: charger-manager: Fix accessing invalidated power supply after charger unbind
        power: charger-manager: Fix accessing invalidated power supply after fuel gauge unbind
        power: charger-manager: Avoid recursive thermal get_temp call
        power_supply: Add no_thermal property to prevent recursive get_temp calls
        power: bq2415x_charger: Fix memory leak on DTS parsing error
        power: bq2415x_charger: Properly handle ENODEV from power_supply_get_by_phandle
        power: ab8500_fg.c: use 64-bit time types
      ec7de656
    • L
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · e0611671
      Linus Torvalds 提交于
      Pull drm gixes from Dave Airlie:
       - exynos: infinite loop regressions fixed
       - i915: one regression
       - radeon: one race condition on monitor probing
       - noveau: two regressions
       - tegra: one vblank regression fix
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/tegra: dc: Add missing call to drm_vblank_on()
        drm/nouveau/nv50/disp: Fix modeset on G94
        drm/gk20a/fb: fix setting of large page size bit
        drm/radeon: add locking around atombios scratch space usage
        drm/i915: Fix obj->map_and_fenceable across tiling changes
        drm/exynos: fix possible infinite loop issue
        drm/exynos: g2d: fix null pointer dereference
        drm/exynos: resolve infinite loop issue on non multi-platform
        drm/exynos: resolve infinite loop issue on multi-platform
      e0611671
    • K
      kernel: use the gnu89 standard explicitly · 51b97e35
      Kirill A. Shutemov 提交于
      Sasha Levin reports:
       "gcc5 changes the default standard to c11, which makes kernel build
        unhappy
      
        Explicitly define the kernel standard to be gnu89 which should keep
        everything working exactly like it was before gcc5"
      
      There are multiple small issues with the new default, but the biggest
      issue seems to be that the old - and very useful - GNU extension to
      allow a cast in front of an initializer has gone away.
      
      Patch updated by Kirill:
       "I'm pretty sure all gcc versions you can build kernel with supports
        -std=gnu89.  cc-option is redunrant.
      
        We also need to adjust HOSTCFLAGS otherwise allmodconfig fails for me"
      
      Note by Andrew Pinski:
       "Yes it was reported and both problems relating to this extension has
        been added to gnu99 and gnu11.  Though there are other issues with the
        kernel dealing with extern inline have different semantics between
        gnu89 and gnu99/11"
      
      End result: we may be able to move up to a newer stdc model eventually,
      but right now the newer models have some annoying deficiencies, so the
      traditional "gnu89" model ends up being the preferred one.
      Signed-off-by: NSasha Levin <sasha.levin@oracle.com>
      Singed-off-by: NKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      51b97e35
    • L
      Merge tag 'nfs-for-3.18-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 1afcb6ed
      Linus Torvalds 提交于
      Pull NFS client bugfixes from Trond Myklebust:
       "Highlights include:
      
         - stable patches to fix NFSv4.x delegation reclaim error paths
         - fix a bug whereby we were advertising NFSv4.1 but using NFSv4.2
           features
         - fix a use-after-free problem with pNFS block layouts
         - fix a memory leak in the pNFS files O_DIRECT code
         - replace an intrusive and Oops-prone performance fix in the NFSv4
           atomic open code with a safer one-line version and revert the two
           original patches"
      
      * tag 'nfs-for-3.18-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        sunrpc: fix sleeping under rcu_read_lock in gss_stringify_acceptor
        NFS: Don't try to reclaim delegation open state if recovery failed
        NFSv4: Ensure that we call FREE_STATEID when NFSv4.x stateids are revoked
        NFSv4: Fix races between nfs_remove_bad_delegation() and delegation return
        NFSv4.1: nfs41_clear_delegation_stateid shouldn't trust NFS_DELEGATED_STATE
        NFSv4: Ensure that we remove NFSv4.0 delegations when state has expired
        NFS: SEEK is an NFS v4.2 feature
        nfs: Fix use of uninitialized variable in nfs_getattr()
        nfs: Remove bogus assignment
        nfs: remove spurious WARN_ON_ONCE in write path
        pnfs/blocklayout: serialize GETDEVICEINFO calls
        nfs: fix pnfs direct write memory leak
        Revert "NFS: nfs4_do_open should add negative results to the dcache."
        Revert "NFS: remove BUG possibility in nfs4_open_and_get_state"
        NFSv4: Ensure nfs_atomic_open set the dentry verifier on ENOENT
      1afcb6ed
  4. 15 11月, 2014 5 次提交
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 56c381f9
      Linus Torvalds 提交于
      Pull input subsystem updates from Dmitry Torokhov:
       "Mostly small fixups to PS/2 tochpad drivers (ALPS, Elantech,
        Synaptics) to better deal with specific hardware"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: elantech - update the documentation
        Input: elantech - provide a sysfs knob for crc_enabled
        Input: elantech - report the middle button of the touchpad
        Input: alps - ignore bad data on Dell Latitudes E6440 and E7440
        Input: alps - allow up to 2 invalid packets without resetting device
        Input: alps - ignore potential bare packets when device is out of sync
        Input: elantech - fix crc_enabled for Fujitsu H730
        Input: elantech - use elantech_report_trackpoint for hardware v4 too
        Input: twl4030-pwrbutton - ensure a wakeup event is recorded.
        Input: synaptics - add min/max quirk for Lenovo T440s
      56c381f9
    • L
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 0861fd1c
      Linus Torvalds 提交于
      Pull arm64 fixes from Catalin Marinas:
      
       - fix EFI stub cache maintenance causing aborts during boot on certain
         platforms
      
       - handle byte stores in __clear_user without panicking
      
       - fix race condition in aarch64_insn_patch_text_sync() (instruction
         patching)
      
       - Couple of type fixes
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: ARCH_PFN_OFFSET should be unsigned long
        Correct the race condition in aarch64_insn_patch_text_sync()
        arm64: __clear_user: handle exceptions on strb
        arm64: Fix data type for physical address
        arm64: efi: Fix stub cache maintenance
      0861fd1c
    • L
      Merge tag 'platform-drivers-x86-v3.18-3' of... · 5ae93760
      Linus Torvalds 提交于
      Merge tag 'platform-drivers-x86-v3.18-3' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86
      
      Pull x86 platform drivers fixlets from Darren Hart:
       "Just two patches to remove hp_accel events from the keyboard bus
        stream via an i8042 filter"
      
      * tag 'platform-drivers-x86-v3.18-3' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86:
        platform: hp_accel: Add SERIO_I8042 as a dependency since it now includes i8042.h/serio.h
        platform: hp_accel: add a i8042 filter to remove HPQ6000 data from kb bus stream
      5ae93760
    • L
      Merge branch 'for-3.18-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · e57c641f
      Linus Torvalds 提交于
      Pull libata fixes from Tejun Heo:
       "The most notable is the revert of lock splitting optimization in ahci.
        This also made the IRQ handling threaded even when there's only one
        IRQ in use.  The conversion missed IRFQ_SHARED leading to screaming
        IRQs problem in some cases and the threaded IRQ handling showed
        performance regression in some LKP test cases.  The changes are
        reverted for now.  It'll probably be retried once threaded IRQ
        handling is removed from ahci.
      
        Other than that, there's one fix for ahci and several patches adding
        device IDs"
      
      * 'for-3.18-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        ahci: fix AHCI parameters not taken into account
        ata: sata_rcar: Add r8a7793 device support
        ahci: Add Device IDs for Intel Sunrise Point PCH
        ahci: disable MSI instead of NCQ on Samsung pci-e SSDs on macbooks
        Revert "AHCI: Optimize single IRQ interrupt processing"
        Revert "AHCI: Do not acquire ata_host::lock from single IRQ handler"
        ata: sata_rcar: Disable DIPM mode for r8a7790 ES1
      e57c641f
    • L
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · 6f0d7a9e
      Linus Torvalds 提交于
      Pull block layer fixes from Jens Axboe:
       "Four small fixes that should be merged for the current 3.18-rc series.
        This pull request contains:
      
         - a minor bugfix for computation of best IO priority given two
           merging requests.  From Jan Kara.
      
         - the final (final) merge count issue that has been plaguing
           virtio-blk.  From Ming Lei.
      
         - enable parallel reinit notify for blk-mq queues, to combine the
           cost of an RCU grace period across lots of devices.  From Tejun
           Heo.
      
         - an error handling fix for the SCSI_IOCTL_SEND_COMMAND ioctl.  From
           Tony Battersby"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        block: blk-merge: fix blk_recount_segments()
        scsi: Fix more error handling in SCSI_IOCTL_SEND_COMMAND
        blk-mq: make mq_queue_reinit_notify() freeze queues in parallel
        block: Fix computation of merged request priority
      6f0d7a9e