1. 09 Jan, 2014 30 commits
  2. 20 Dec, 2013 10 commits
    • Greg Kroah-Hartman's avatar
      Linux 3.10.25 · 095f493c
      Greg Kroah-Hartman authored
      095f493c
    • Roger Quadros's avatar
      ARM: OMAP2+: hwmod: Fix SOFTRESET logic · 5a04f32c
      Roger Quadros authored
      commit 313a76ee upstream.
      
      In _ocp_softreset(), after _set_softreset() + write_sysconfig(),
      the hwmod's sysc_cache will always contain SOFTRESET bit set
      so all further writes to sysconfig using this cache will initiate
      a repeated SOFTRESET e.g. enable_sysc(). This is true for OMAP3 like
      platforms that have RESET_DONE status in the SYSSTATUS register and
      so the the SOFTRESET bit in SYSCONFIG is not automatically cleared.
      It is not a problem for OMAP4 like platforms that indicate RESET
      completion by clearing the SOFTRESET bit in the SYSCONFIG register.
      
      This repeated SOFTRESET is undesired and was the root cause of
      USB host issues on OMAP3 platforms when hwmod was allowed to do the
      SOFTRESET for the USB Host module.
      
      To fix this we clear the SOFTRESET bit and update the sysconfig
      register + sysc_cache using write_sysconfig().
      Signed-off-by: default avatarRoger Quadros <rogerq@ti.com>
      Tested-by: Tomi Valkeinen <tomi.valkeinen@ti.com> # Panda, BeagleXM
      [paul@pwsan.com: renamed _clr_softreset() to _clear_softreset()]
      Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      5a04f32c
    • Liu Bo's avatar
      Btrfs: do not run snapshot-aware defragment on error · f5749e37
      Liu Bo authored
      commit 6f519564 upstream.
      
      If something wrong happens in write endio, running snapshot-aware defragment
      can end up with undefined results, maybe a crash, so we should avoid it.
      
      In order to share similar code, this also adds a helper to free the struct for
      snapshot-aware defrag.
      Signed-off-by: default avatarLiu Bo <bo.li.liu@oracle.com>
      Signed-off-by: default avatarJosef Bacik <jbacik@fusionio.com>
      Signed-off-by: default avatarChris Mason <chris.mason@fusionio.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f5749e37
    • Filipe David Borba Manana's avatar
      Btrfs: fix incorrect inode acl reset · 9436cf97
      Filipe David Borba Manana authored
      commit 8185554d upstream.
      
      When a directory has a default ACL and a subdirectory is created
      under that directory, btrfs_init_acl() is called when the
      subdirectory's inode is created to initialize the inode's ACL
      (inherited from the parent directory) but it was clearing the ACL
      from the inode after setting it if posix_acl_create() returned
      success, instead of clearing it only if it returned an error.
      
      To reproduce this issue:
      
      $ mkfs.btrfs -f /dev/loop0
      $ mount /dev/loop0 /mnt
      $ mkdir /mnt/acl
      $ setfacl -d --set u::rwx,g::rwx,o::- /mnt/acl
      $ getfacl /mnt/acl
      user::rwx
      group::rwx
      other::r-x
      default:user::rwx
      default:group::rwx
      default:other::---
      
      $ mkdir /mnt/acl/dir1
      $ getfacl /mnt/acl/dir1
      user::rwx
      group::rwx
      other::---
      
      After unmounting and mounting again the filesystem, fgetacl returned the
      expected ACL:
      
      $ umount /mnt/acl
      $ mount /dev/loop0 /mnt
      $ getfacl /mnt/acl/dir1
      user::rwx
      group::rwx
      other::---
      default:user::rwx
      default:group::rwx
      default:other::---
      
      Meaning that the underlying xattr was persisted.
      Reported-by: default avatarGiuseppe Fierro <giuseppe@fierro.org>
      Signed-off-by: default avatarFilipe David Borba Manana <fdmanana@gmail.com>
      Signed-off-by: default avatarJosef Bacik <jbacik@fusionio.com>
      Signed-off-by: default avatarChris Mason <chris.mason@fusionio.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      9436cf97
    • Josef Bacik's avatar
      Btrfs: fix hole check in log_one_extent · b395193e
      Josef Bacik authored
      commit ed9e8af8 upstream.
      
      I added an assert to make sure we were looking up aligned offsets for csums and
      I tripped it when running xfstests.  This is because log_one_extent was checking
      if block_start == 0 for a hole instead of EXTENT_MAP_HOLE.  This worked out fine
      in practice it seems, but it adds a lot of extra work that is uneeded.  With
      this fix I'm no longer tripping my assert.  Thanks,
      Signed-off-by: default avatarJosef Bacik <jbacik@fusionio.com>
      Signed-off-by: default avatarChris Mason <chris.mason@fusionio.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b395193e
    • Liu Bo's avatar
      Btrfs: fix memory leak of chunks' extent map · fb5834ff
      Liu Bo authored
      commit 7d3d1744 upstream.
      
      As we're hold a ref on looking up the extent map, we need to drop the ref
      before returning to callers.
      Signed-off-by: default avatarLiu Bo <bo.li.liu@oracle.com>
      Signed-off-by: default avatarJosef Bacik <jbacik@fusionio.com>
      Signed-off-by: default avatarChris Mason <chris.mason@fusionio.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      fb5834ff
    • Greg Kroah-Hartman's avatar
      Revert "net: update consumers of MSG_MORE to recognize MSG_SENDPAGE_NOTLAST" · 2845c362
      Greg Kroah-Hartman authored
      It turns out that commit: d3f7d56a was
      applied to the tree twice, which didn't hurt anything, but it's good to
      fix this up.
      Reported-by: default avatarVeaceslav Falico <veaceslav@falico.eu>
      
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Shawn Landden <shawnlandden@gmail.com>
      Cc: Tom Herbert <therbert@google.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2845c362
    • Nicolas Dichtel's avatar
      ip6tnl: fix use after free of fb_tnl_dev · 22c3ec55
      Nicolas Dichtel authored
      The upstream commit bb814094 ("ip6tnl: allow to use rtnl ops on fb tunnel")
      (backported into linux-3.10.y) left a bug which was fixed upstream by commit
      1e9f3d6f ("ip6tnl: fix use after free of fb_tnl_dev").
      
      The problem is a bit different in linux-3.10.y, because there is no x-netns
      support (upstream commit 0bd87628 ("ip6tnl: add x-netns support")).
      When ip6_tunnel.ko is unloaded, FB device is deleted by rtnl_link_unregister()
      and then we try to delete it again in ip6_tnl_destroy_tunnels().
      
      This patch removes the second deletion.
      Reported-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Suggested-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarNicolas Dichtel <nicolas.dichtel@6wind.com>
      Cc: David Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      22c3ec55
    • Andy Adamson's avatar
      NFSv4 wait on recovery for async session errors · 39be1c3d
      Andy Adamson authored
      commit 4a82fd7c upstream.
      
      When the state manager is processing the NFS4CLNT_DELEGRETURN flag, session
      draining is off, but DELEGRETURN can still get a session error.
      The async handler calls nfs4_schedule_session_recovery returns -EAGAIN, and
      the DELEGRETURN done then restarts the RPC task in the prepare state.
      With the state manager still processing the NFS4CLNT_DELEGRETURN flag with
      session draining off, these DELEGRETURNs will cycle with errors filling up the
      session slots.
      
      This prevents OPEN reclaims (from nfs_delegation_claim_opens) required by the
      NFS4CLNT_DELEGRETURN state manager processing from completing, hanging the
      state manager in the __rpc_wait_for_completion_task in nfs4_run_open_task
      as seen in this kernel thread dump:
      
      kernel: 4.12.32.53-ma D 0000000000000000     0  3393      2 0x00000000
      kernel: ffff88013995fb60 0000000000000046 ffff880138cc5400 ffff88013a9df140
      kernel: ffff8800000265c0 ffffffff8116eef0 ffff88013fc10080 0000000300000001
      kernel: ffff88013a4ad058 ffff88013995ffd8 000000000000fbc8 ffff88013a4ad058
      kernel: Call Trace:
      kernel: [<ffffffff8116eef0>] ? cache_alloc_refill+0x1c0/0x240
      kernel: [<ffffffffa0358110>] ? rpc_wait_bit_killable+0x0/0xa0 [sunrpc]
      kernel: [<ffffffffa0358152>] rpc_wait_bit_killable+0x42/0xa0 [sunrpc]
      kernel: [<ffffffff8152914f>] __wait_on_bit+0x5f/0x90
      kernel: [<ffffffffa0358110>] ? rpc_wait_bit_killable+0x0/0xa0 [sunrpc]
      kernel: [<ffffffff815291f8>] out_of_line_wait_on_bit+0x78/0x90
      kernel: [<ffffffff8109b520>] ? wake_bit_function+0x0/0x50
      kernel: [<ffffffffa035810d>] __rpc_wait_for_completion_task+0x2d/0x30 [sunrpc]
      kernel: [<ffffffffa040d44c>] nfs4_run_open_task+0x11c/0x160 [nfs]
      kernel: [<ffffffffa04114e7>] nfs4_open_recover_helper+0x87/0x120 [nfs]
      kernel: [<ffffffffa0411646>] nfs4_open_recover+0xc6/0x150 [nfs]
      kernel: [<ffffffffa040cc6f>] ? nfs4_open_recoverdata_alloc+0x2f/0x60 [nfs]
      kernel: [<ffffffffa0414e1a>] nfs4_open_delegation_recall+0x6a/0xa0 [nfs]
      kernel: [<ffffffffa0424020>] nfs_end_delegation_return+0x120/0x2e0 [nfs]
      kernel: [<ffffffff8109580f>] ? queue_work+0x1f/0x30
      kernel: [<ffffffffa0424347>] nfs_client_return_marked_delegations+0xd7/0x110 [nfs]
      kernel: [<ffffffffa04225d8>] nfs4_run_state_manager+0x548/0x620 [nfs]
      kernel: [<ffffffffa0422090>] ? nfs4_run_state_manager+0x0/0x620 [nfs]
      kernel: [<ffffffff8109b0f6>] kthread+0x96/0xa0
      kernel: [<ffffffff8100c20a>] child_rip+0xa/0x20
      kernel: [<ffffffff8109b060>] ? kthread+0x0/0xa0
      kernel: [<ffffffff8100c200>] ? child_rip+0x0/0x20
      
      The state manager can not therefore process the DELEGRETURN session errors.
      Change the async handler to wait for recovery on session errors.
      Signed-off-by: default avatarAndy Adamson <andros@netapp.com>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      39be1c3d
    • Alan's avatar
      sc1200_wdt: Fix oops · 8a8e917f
      Alan authored
      commit dace8bbf upstream.
      
      If loaded with isapnp = 0 the driver explodes. This is catching
      people out now and then. What should happen in the working case is
      a complete mystery and the code appears terminally confused, but we
      can at least make the error path work properly.
      Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
      Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarWim Van Sebroeck <wim@iguana.be>
      Partially-Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=53991Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      8a8e917f