1. 28 May, 2013 29 commits
    • Namjae Jeon's avatar
      f2fs: optimize several routines in node.h · a06a2416
      Namjae Jeon authored
      There are various functions with common code which could be separated
      out to make common routines. So, made new routines and in order to
      retain the same call path and no major changes, written some macros
      to access those routines.
      Signed-off-by: default avatarNamjae Jeon <namjae.jeon@samsung.com>
      Signed-off-by: default avatarAmit Sahrawat <a.sahrawat@samsung.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      a06a2416
    • Namjae Jeon's avatar
      f2fs: remove unneeded initializations in f2fs_parent_dir · 4777f86b
      Namjae Jeon authored
      There is no need to initialize few pointers in f2fs_parent_dir
      as the values are not checked and instead directly initialized
      values are used.
      Signed-off-by: default avatarNamjae Jeon <namjae.jeon@samsung.com>
      Signed-off-by: default avatarAmit Sahrawat <a.sahrawat@samsung.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      4777f86b
    • Namjae Jeon's avatar
      f2fs: push some variables to debug part · 35b09d82
      Namjae Jeon authored
      Some, counters are needed only for the statistical information
      while debugging.
      So, those can be controlled using CONFIG_F2FS_STAT_FS,
      pushing the usage for few variables under this flag.
      Signed-off-by: default avatarNamjae Jeon <namjae.jeon@samsung.com>
      Signed-off-by: default avatarAmit Sahrawat <a.sahrawat@samsung.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      35b09d82
    • Jaegeuk Kim's avatar
      f2fs: align data types between on-disk and in-memory block addresses · a9841c4d
      Jaegeuk Kim authored
      The on-disk block address is defined as __le32, but in-memory block address,
      block_t, does as u64.
      
      Let's synchronize them to 32 bits.
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      a9841c4d
    • Dan Carpenter's avatar
      f2fs: dereferencing an ERR_PTR · f28c06fa
      Dan Carpenter authored
      There is an error path where "dir" is an ERR_PTR.
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      f28c06fa
    • Jaegeuk Kim's avatar
      f2fs: use ihold · 6f6fd833
      Jaegeuk Kim authored
      Use the following helper function committed by Al.
      
      commit 7de9c6ee
      Author: Al Viro <viro@zeniv.linux.org.uk>
      Date:   Sat Oct 23 11:11:40 2010 -0400
      
          new helper: ihold()
      
      ...
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      6f6fd833
    • Jaegeuk Kim's avatar
      f2fs: should not make_bad_inode on f2fs_link failure · 93ff10d6
      Jaegeuk Kim authored
      If -ENOSPC is met during f2fs_link, we should not make the inode as bad.
      The inode is still alive.
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      93ff10d6
    • Jaegeuk Kim's avatar
      f2fs: fix to handle do_recover_data errors · 39cf72cf
      Jaegeuk Kim authored
      This patch adds error handling codes of check_index_in_prev_nodes and its
      caller, do_recover_data.
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      39cf72cf
    • Jaegeuk Kim's avatar
      f2fs: reuse the locked dnode page and its inode · b292dcab
      Jaegeuk Kim authored
      This patch fixes the following deadlock bug during the recovery.
      
      INFO: task mount:1322 blocked for more than 120 seconds.
      "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
      mount           D ffffffff81125870     0  1322   1266 0x00000000
       ffff8801207e39d8 0000000000000046 ffff88012ab1dee0 0000000000000046
       ffff8801207e3a08 ffff880115903f40 ffff8801207e3fd8 ffff8801207e3fd8
       ffff8801207e3fd8 ffff880115903f40 ffff8801207e39d8 ffff88012fc94520
      Call Trace:
      [<ffffffff81125870>] ? __lock_page+0x70/0x70
      [<ffffffff816a92d9>] schedule+0x29/0x70
      [<ffffffff816a93af>] io_schedule+0x8f/0xd0
      [<ffffffff8112587e>] sleep_on_page+0xe/0x20
      [<ffffffff816a649a>] __wait_on_bit_lock+0x5a/0xc0
      [<ffffffff81125867>] __lock_page+0x67/0x70
      [<ffffffff8106c7b0>] ? autoremove_wake_function+0x40/0x40
      [<ffffffff81126857>] find_lock_page+0x67/0x80
      [<ffffffff8112698f>] find_or_create_page+0x3f/0xb0
      [<ffffffffa03901a8>] ? sync_inode_page+0xa8/0xd0 [f2fs]
      [<ffffffffa038fdf7>] get_node_page+0x67/0x180 [f2fs]
      [<ffffffffa039818b>] recover_fsync_data+0xacb/0xff0 [f2fs]
      [<ffffffff816aaa1e>] ? _raw_spin_unlock+0x3e/0x40
      [<ffffffffa0389634>] f2fs_fill_super+0x7d4/0x850 [f2fs]
      [<ffffffff81184cf9>] mount_bdev+0x1c9/0x210
      [<ffffffffa0388e60>] ? validate_superblock+0x180/0x180 [f2fs]
      [<ffffffffa0387635>] f2fs_mount+0x15/0x20 [f2fs]
      [<ffffffff81185a13>] mount_fs+0x43/0x1b0
      [<ffffffff81145ba0>] ? __alloc_percpu+0x10/0x20
      [<ffffffff811a0796>] vfs_kern_mount+0x76/0x120
      [<ffffffff811a2cb7>] do_mount+0x237/0xa10
      [<ffffffff81140b9b>] ? strndup_user+0x5b/0x80
      [<ffffffff811a3520>] SyS_mount+0x90/0xe0
      [<ffffffff816b3502>] system_call_fastpath+0x16/0x1b
      
      The bug is triggered when check_index_in_prev_nodes tries to get the direct
      node page by calling get_node_page.
      At this point, if the direct node page is already locked by get_dnode_of_data,
      its caller, we got a deadlock condition.
      
      This patch adds additional condition check for the reuse of locked direct node
      pages prior to the get_node_page call.
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      b292dcab
    • Jaegeuk Kim's avatar
      f2fs: fix wrong condition check · b638f0c4
      Jaegeuk Kim authored
      While an orphan inode has zero link_count, f2fs_gc is able to select the inode
      for foreground gc.
      
      - f2fs_gc
       - do_garbage_collect
         - gc_data_segment
           : f2fs_iget is failed
           : get_valid_blocks() != 0, so that retry
      --> here we got the infinite loop.
      
      This patch resolved this issue.
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      b638f0c4
    • Jaegeuk Kim's avatar
      f2fs: add f2fs_readonly() · 77888c1e
      Jaegeuk Kim authored
      Introduce a simple macro function for readability.
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      77888c1e
    • Jaegeuk Kim's avatar
      f2fs: avoid RECLAIM_FS-ON-W: deadlock · 6f85b352
      Jaegeuk Kim authored
      This patch tries to avoid the following deadlock condition of which the reclaim
      path can trigger f2fs_balance_fs again.
      
      =================================
      [ INFO: inconsistent lock state ]
      ---------------------------------
      inconsistent {RECLAIM_FS-ON-W} -> {IN-RECLAIM_FS-W} usage.
      kswapd0/41 [HC0[0]:SC0[0]:HE1:SE1] takes:
       (&sbi->gc_mutex){+.+.?.}, at: f2fs_balance_fs+0xe6/0x100 [f2fs]
      {RECLAIM_FS-ON-W} state was registered at:
        [<ffffffff810aa5a9>] mark_held_locks+0xb9/0x140
        [<ffffffff810aae85>] lockdep_trace_alloc+0x85/0xf0
        [<ffffffff8113ab2c>] __alloc_pages_nodemask+0x7c/0x9b0
        [<ffffffff81175aa8>] alloc_pages_current+0xb8/0x180
        [<ffffffff811319cf>] __page_cache_alloc+0xaf/0xd0
        [<ffffffff8113225c>] find_or_create_page+0x4c/0xb0
        [<ffffffffa021359e>] find_data_page+0x14e/0x210 [f2fs]
        [<ffffffffa021161b>] f2fs_gc+0x9eb/0xd90 [f2fs]
        [<ffffffffa0218fae>] f2fs_balance_fs+0xee/0x100 [f2fs]
        [<ffffffffa020848c>] f2fs_setattr+0x6c/0x200 [f2fs]
        [<ffffffff811ae51b>] notify_change+0x1db/0x3a0
        [<ffffffff8118fbd0>] do_truncate+0x60/0xa0
        [<ffffffff8118fd95>] vfs_truncate+0x185/0x1b0
        [<ffffffff8118fe1c>] do_sys_truncate+0x5c/0xa0
        [<ffffffff8118ffee>] SyS_truncate+0xe/0x10
        [<ffffffff816e2b42>] system_call_fastpath+0x16/0x1b
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      6f85b352
    • Jaegeuk Kim's avatar
      f2fs: don't do checkpoint if error is occurred · 2c2c149f
      Jaegeuk Kim authored
      If we met an error during the dentry recovery, we should not conduct checkpoint.
      Otherwise, some errorneous dentry blocks overwrites the existing blocks that
      contain the remaining recovery information.
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      2c2c149f
    • Jaegeuk Kim's avatar
      f2fs: fix to unlock page before exit · 45856aff
      Jaegeuk Kim authored
      If we got an error after lock_page, we should unlock it before exit.
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      45856aff
    • Jaegeuk Kim's avatar
      f2fs: remove unnecessary kmap/kunmap operations · 9a55ed65
      Jaegeuk Kim authored
      The allocated page used by the recovery is not on HIGHMEM, so that we don't
      need to use kmap/kunmap.
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      9a55ed65
    • Namjae Jeon's avatar
      f2fs: reorganize f2fs_vm_page_mkwrite · 9851e6e1
      Namjae Jeon authored
      Few things can be changed in the default mkwrite function
      1) Make file_update_time at the start before acquiring any lock
      2) the condition page_offset(page) >= i_size_read(inode) should be
       changed to page_offset(page) > i_size_read
      3) Move wait_on_page_writeback.
      Signed-off-by: default avatarNamjae Jeon <namjae.jeon@samsung.com>
      Signed-off-by: default avatarAmit Sahrawat <a.sahrawat@samsung.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      9851e6e1
    • majianpeng's avatar
      f2fs: use list_for_each_entry rather than list_for_each_entry_safe · 145b04e5
      majianpeng authored
      We can do this, since now we use a global mutex, f2fs_stat_mutex to protect its
      list operations.
      Signed-off-by: default avatarJianpeng Ma <majianpeng@gmail.com>
      [Jaegeuk Kim: add description]
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      145b04e5
    • Haicheng Li's avatar
      f2fs: remove unecessary variable and code · 81fb5e87
      Haicheng Li authored
      Code cleanup without behavior changed.
      Signed-off-by: default avatarHaicheng Li <haicheng.li@linux.intel.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      81fb5e87
    • Peter Zijlstra's avatar
      f2fs, lockdep: annotate mutex_lock_all() · bfe35965
      Peter Zijlstra authored
      Majianpeng reported a lockdep splat for f2fs. It turns out mutex_lock_all()
      acquires an array of locks (in global/local lock style).
      
      Any such operation is always serialized using cp_mutex, therefore there is no
      fs_lock[] lock-order issue; tell lockdep about this using the
      mutex_lock_nest_lock() primitive.
      Reported-by: default avatarmajianpeng <majianpeng@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      bfe35965
    • Jaegeuk Kim's avatar
      f2fs: add debug msgs in the recovery routine · f356fe0c
      Jaegeuk Kim authored
      This patch adds some trivial debugging messages in the recovery process.
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      f356fe0c
    • Jaegeuk Kim's avatar
      f2fs: update inode page after creation · 44a83ff6
      Jaegeuk Kim authored
      I found a bug when testing power-off-recovery as follows.
      
      [Bug Scenario]
      1. create a file
      2. fsync the file
      3. reboot w/o any sync
      4. try to recover the file
       - found its fsync mark
       - found its dentry mark
         : try to recover its dentry
          - get its file name
          - get its parent inode number
           : here we got zero value
      
      The reason why we get the wrong parent inode number is that we didn't
      synchronize the inode page with its newly created inode information perfectly.
      
      Especially, previous f2fs stores fi->i_pino and writes it to the cached
      node page in a wrong order, which incurs the zero-valued i_pino during the
      recovery.
      
      So, this patch modifies the creation flow to fix the synchronization order of
      inode page with its inode.
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      44a83ff6
    • Jaegeuk Kim's avatar
      f2fs: change get_new_data_page to pass a locked node page · 64aa7ed9
      Jaegeuk Kim authored
      This patch is for passing a locked node page to get_dnode_of_data.
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      64aa7ed9
    • Jaegeuk Kim's avatar
      f2fs: skip get_node_page if locked node page is passed · 1646cfac
      Jaegeuk Kim authored
      If get_dnode_of_data gets a locked node page, let's skip redundant
      get_node_page calls.
      This is for the futher enhancement.
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      1646cfac
    • Jaegeuk Kim's avatar
      f2fs: remove unnecessary por_doing check · 0a364af1
      Jaegeuk Kim authored
      This por_doing check is totally not related to the recovery process.
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      0a364af1
    • Jaegeuk Kim's avatar
      f2fs: fix BUG_ON during f2fs_evict_inode(dir) · 74d0b917
      Jaegeuk Kim authored
      During the dentry recovery routine, recover_inode() triggers __f2fs_add_link
      with its directory inode.
      
      In the following scenario, a bug is captured.
       1. dir = f2fs_iget(pino)
       2. __f2fs_add_link(dir, name)
       3. iput(dir)
        -> f2fs_evict_inode() faces with BUG_ON(atomic_read(fi->dirty_dents))
      
      Kernel BUG at ffffffffa01c0676 [verbose debug info unavailable]
      [<ffffffffa01c0676>] f2fs_evict_inode+0x276/0x300 [f2fs]
      Call Trace:
       [<ffffffff8118ea00>] evict+0xb0/0x1b0
       [<ffffffff8118f1c5>] iput+0x105/0x190
       [<ffffffffa01d2dac>] recover_fsync_data+0x3bc/0x1070 [f2fs]
       [<ffffffff81692e8a>] ? io_schedule+0xaa/0xd0
       [<ffffffff81690acb>] ? __wait_on_bit_lock+0x7b/0xc0
       [<ffffffff8111a0e7>] ? __lock_page+0x67/0x70
       [<ffffffff81165e21>] ? kmem_cache_alloc+0x31/0x140
       [<ffffffff8118a502>] ? __d_instantiate+0x92/0xf0
       [<ffffffff812a949b>] ? security_d_instantiate+0x1b/0x30
       [<ffffffff8118a5b4>] ? d_instantiate+0x54/0x70
      
      This means that we should flush all the dentry pages between iget and iput().
      But, during the recovery routine, it is unallowed due to consistency, so we
      have to wait the whole recovery process.
      And then, write_checkpoint flushes all the dirty dentry blocks, and nicely we
      can put the stale dir inodes from the dirty_dir_inode_list.
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      74d0b917
    • Jaegeuk Kim's avatar
      f2fs: fix por_doing variable coverage · 8c26d7d5
      Jaegeuk Kim authored
      The reason of using sbi->por_doing is to alleviate data writes during the
      recovery.
      The find_fsync_dnodes() produces some dirty dentry pages, so we should
      cover it too with sbi->por_doing.
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      8c26d7d5
    • Jaegeuk Kim's avatar
      f2fs: remove redundant assignment · addbe45b
      Jaegeuk Kim authored
      We don't need to assign a value redundantly.
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      addbe45b
    • Jaegeuk Kim's avatar
      f2fs: fix the inconsistent state of data pages · 650495de
      Jaegeuk Kim authored
      In get_lock_data_page, if there is a data race between get_dnode_of_data for
      node and grab_cache_page for data, f2fs is able to face with the following
      BUG_ON(dn.data_blkaddr == NEW_ADDR).
      
      kernel BUG at /home/zeus/f2fs_test/src/fs/f2fs/data.c:251!
       [<ffffffffa044966c>] get_lock_data_page+0x1ec/0x210 [f2fs]
      Call Trace:
       [<ffffffffa043b089>] f2fs_readdir+0x89/0x210 [f2fs]
       [<ffffffff811a0920>] ? fillonedir+0x100/0x100
       [<ffffffff811a0920>] ? fillonedir+0x100/0x100
       [<ffffffff811a07f8>] vfs_readdir+0xb8/0xe0
       [<ffffffff811a0b4f>] sys_getdents+0x8f/0x110
       [<ffffffff816d7999>] system_call_fastpath+0x16/0x1b
      
      This bug is able to be occurred when the block address of the data block is
      changed after f2fs_put_dnode().
      In order to avoid that, this patch fixes the lock order of node and data
      blocks in which the node block lock is covered by the data block lock.
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      650495de
    • Jaegeuk Kim's avatar
      f2fs: fix inconsistency of block count during recovery · 65e5cd0a
      Jaegeuk Kim authored
      Currently f2fs recovers the dentry of fsynced files.
      When power-off-recovery is conducted, this newly recovered inode should increase
      node block count as well as inode block count.
      
      This patch resolves this inconsistency that results in:
      
      1. create a file
      2. write data
      3. fsync
      4. reboot without sync
      5. mount and recover the file
      6. node block count is 1 and inode block count is 2
       : fall into the inconsistent state
      7. unlink the file
       : trigger the following BUG_ON
      
      ------------[ cut here ]------------
      kernel BUG at /home/zeus/f2fs_test/src/fs/f2fs/f2fs.h:716!
      Call Trace:
       [<ffffffffa0344100>] ? get_node_page+0x50/0x1a0 [f2fs]
       [<ffffffffa0344bfc>] remove_inode_page+0x8c/0x100 [f2fs]
       [<ffffffffa03380f0>] ? f2fs_evict_inode+0x180/0x2d0 [f2fs]
       [<ffffffffa033812e>] f2fs_evict_inode+0x1be/0x2d0 [f2fs]
       [<ffffffff811c7a67>] evict+0xa7/0x1a0
       [<ffffffff811c82b5>] iput+0x105/0x190
       [<ffffffff811c2b30>] d_kill+0xe0/0x120
       [<ffffffff811c2c57>] dput+0xe7/0x1e0
       [<ffffffff811acc3d>] __fput+0x19d/0x2d0
       [<ffffffff811acd7e>] ____fput+0xe/0x10
       [<ffffffff81070645>] task_work_run+0xb5/0xe0
       [<ffffffff81002941>] do_notify_resume+0x71/0xb0
       [<ffffffff8175f14a>] int_signal+0x12/0x17
      Reported-and-Tested-by: default avatarChris Fries <C.Fries@motorola.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      65e5cd0a
  2. 26 May, 2013 9 commits
    • Linus Torvalds's avatar
      Linux 3.10-rc3 · e4aa937e
      Linus Torvalds authored
      e4aa937e
    • Manfred Spraul's avatar
      ipc/sem.c: Fix missing wakeups in do_smart_update_queue() · ab465df9
      Manfred Spraul authored
      do_smart_update_queue() is called when an operation (semop,
      semctl(SETVAL), semctl(SETALL), ...) modified the array.  It must check
      which of the sleeping tasks can proceed.
      
      do_smart_update_queue() missed a few wakeups:
       - if a sleeping complex op was completed, then all per-semaphore queues
         must be scanned - not only those that were modified by *sops
       - if a sleeping simple op proceeded, then the global queue must be
         scanned again
      
      And:
       - the test for "|sops == NULL) before scanning the global queue is not
         required: If the global queue is empty, then it doesn't need to be
         scanned - regardless of the reason for calling do_smart_update_queue()
      
      The patch is not optimized, i.e.  even completing a wait-for-zero
      operation causes a rescan.  This is done to keep the patch as simple as
      possible.
      Signed-off-by: default avatarManfred Spraul <manfred@colorfullife.com>
      Acked-by: default avatarDavidlohr Bueso <davidlohr.bueso@hp.com>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ab465df9
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-3.10-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 89ff7783
      Linus Torvalds authored
      Pull NFS client bugfixes from Trond Myklebust:
      
       - Stable fix to prevent an rpc_task wakeup race
       - Fix a NFSv4.1 session drain deadlock
       - Fix a NFSv4/v4.1 mount regression when not running rpc.gssd
       - Ensure auth_gss pipe detection works in namespaces
       - Fix SETCLIENTID fallback if rpcsec_gss is not available
      
      * tag 'nfs-for-3.10-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        NFS: Fix SETCLIENTID fallback if GSS is not available
        SUNRPC: Prevent an rpc_task wakeup race
        NFSv4.1 Fix a pNFS session draining deadlock
        SUNRPC: Convert auth_gss pipe detection to work in namespaces
        SUNRPC: Faster detection if gssd is actually running
        SUNRPC: Fix a bug in gss_create_upcall
      89ff7783
    • Linus Torvalds's avatar
      Merge tag 'edac_fixes_for_3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp · 932ff06b
      Linus Torvalds authored
      Pull amd64 edac fix from Borislav Petkov:
       "A sysfs file permissions correction"
      
      * tag 'edac_fixes_for_3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
        amd64_edac: Fix bogus sysfs file permissions
      932ff06b
    • Linus Torvalds's avatar
      Merge branch 'parisc-for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 95f4838e
      Linus Torvalds authored
      Pull parisc fixes from Helge Deller:
       "This time we made the kernel- and interruption stack allocation
        reentrant which fixed some strange kernel crashes (specifically
        protection ID traps).
      
        Furthemore this patchset fixes the interrupt stack in UP and SMP
        configurations by using native locking instructions.  And finally
        usage of floating point calculations on parisc were disabled in the
        MPILIB."
      
      * 'parisc-for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: fix irq stack on UP and SMP
        parisc/superio: Use module_pci_driver to register driver
        parisc: make interrupt and interruption stack allocation reentrant
        parisc: show number of FPE and unaligned access handler calls in /proc/interrupts
        parisc: add additional parisc git tree to MAINTAINERS file
        parisc: use PAGE_SHIFT instead of hardcoded value 12 in pacache.S
        parisc: add rp5470 entry to machine database
        MPILIB: disable usage of floating point registers on parisc
      95f4838e
    • Linus Torvalds's avatar
      Merge tag 'for-linus-v3.10-rc3' of git://oss.sgi.com/xfs/xfs · 088d812f
      Linus Torvalds authored
      Pull xfs fixes from Ben Myers:
       "Here are fixes for corruption on 512 byte filesystems, a rounding
        error, a use-after-free, some flags to fix lockdep reports, and
        several fixes related to CRCs.  We have a somewhat larger post -rc1
        queue than usual due to fixes related to the CRC feature we merged for
        3.10:
      
         - Fix for corruption with FSX on 512 byte blocksize filesystems
         - Fix rounding error in xfs_free_file_space
         - Fix use-after-free with extent free intents
         - Add several missing KM_NOFS flags to fix lockdep reports
         - Several fixes for CRC related code"
      
      * tag 'for-linus-v3.10-rc3' of git://oss.sgi.com/xfs/xfs:
        xfs: remote attribute lookups require the value length
        xfs: xfs_attr_shortform_allfit() does not handle attr3 format.
        xfs: xfs_da3_node_read_verify() doesn't handle XFS_ATTR3_LEAF_MAGIC
        xfs: fix missing KM_NOFS tags to keep lockdep happy
        xfs: Don't reference the EFI after it is freed
        xfs: fix rounding in xfs_free_file_space
        xfs: fix sub-page blocksize data integrity writes
      088d812f
    • Linus Torvalds's avatar
      Merge tag 'for-v3.10-fixes' of git://git.infradead.org/battery-2.6 · 72de4c63
      Linus Torvalds authored
      Pull bettery fixes from Anton Vorontsov:
       "Last minute one-liners: wrong kfree usage fix, module alias fixup and
        kconfig adjustments"
      
      * tag 'for-v3.10-fixes' of git://git.infradead.org/battery-2.6:
        pm2301_charger: Fix module alias prefix
        wm831x_backup: Fix wrong kfree call for devdata->backup.name
        bq27x00: Fix I2C dependency in KConfig
        lp8788-charger: Fix kconfig dependency
      72de4c63
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-3.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 1aad08dc
      Linus Torvalds authored
      Pull power management and ACPI fixes from Rafael Wysocki:
      
       - Additional CPU ID for the intel_pstate driver from Dirk Brandewie.
      
       - More cpufreq fixes related to ARM big.LITTLE support and locking from
         Viresh Kumar.
      
       - VIA C7 cpufreq build fix from Rafał Bilski.
      
       - ACPI power management fix making it possible to use device power
         states regardless of the CONFIG_PM setting from Rafael J Wysocki.
      
       - New ACPI video blacklist item from Bastian Triller.
      
      * tag 'pm+acpi-3.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / video: Add "Asus UL30A" to ACPI video detect blacklist
        cpufreq: arm_big_little_dt: Instantiate as platform_driver
        cpufreq: arm_big_little_dt: Register driver only if DT has valid data
        cpufreq / e_powersaver: Fix linker error when ACPI processor is a module
        cpufreq / intel_pstate: Add additional supported CPU ID
        cpufreq: Drop rwsem lock around CPUFREQ_GOV_POLICY_EXIT
        ACPI / PM: Allow device power states to be used for CONFIG_PM unset
      1aad08dc
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.infradead.org/users/vkoul/slave-dma · 27a24cfa
      Linus Torvalds authored
      Pull slave-dma fixes from Vinod Koul:
       "We have two patches from Andy & Rafael fixing the Lynxpoint dma"
      
      * 'fixes' of git://git.infradead.org/users/vkoul/slave-dma:
        ACPI / LPSS: register clock device for Lynxpoint DMA properly
        dma: acpi-dma: parse CSRT to extract additional resources
      27a24cfa
  3. 25 May, 2013 2 commits