1. 19 Dec, 2014 13 commits
    • Andrew Morton's avatar
      tools/testing/selftests/Makefile: alphasort the TARGETS list · 96e869d8
      Andrew Morton authored
      This list is supposed to be sorted, to reduce patch collisions.
      
      Cc: Shuah Khan <shuah.kh@samsung.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      96e869d8
    • Ganesh Mahendran's avatar
      mm/zsmalloc: adjust order of functions · 66cdef66
      Ganesh Mahendran authored
      Currently functions in zsmalloc.c does not arranged in a readable and
      reasonable sequence.  With the more and more functions added, we may
      meet below inconvenience.  For example:
      
      Current functions:
      
          void zs_init()
          {
          }
      
          static void get_maxobj_per_zspage()
          {
          }
      
      Then I want to add a func_1() which is called from zs_init(), and this
      new added function func_1() will used get_maxobj_per_zspage() which is
      defined below zs_init().
      
          void func_1()
          {
              get_maxobj_per_zspage()
          }
      
          void zs_init()
          {
              func_1()
          }
      
          static void get_maxobj_per_zspage()
          {
          }
      
      This will cause compiling issue. So we must add a declaration:
      
          static void get_maxobj_per_zspage();
      
      before func_1() if we do not put get_maxobj_per_zspage() before
      func_1().
      
      In addition, puting module_[init|exit] functions at the bottom of the
      file conforms to our habit.
      
      So, this patch ajusts function sequence as:
      
          /* helper functions */
          ...
          obj_location_to_handle()
          ...
      
          /* Some exported functions */
          ...
      
          zs_map_object()
          zs_unmap_object()
      
          zs_malloc()
          zs_free()
      
          zs_init()
          zs_exit()
      Signed-off-by: default avatarGanesh Mahendran <opensource.ganesh@gmail.com>
      Cc: Nitin Gupta <ngupta@vflare.org>
      Acked-by: default avatarMinchan Kim <minchan@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      66cdef66
    • Junxiao Bi's avatar
      ocfs2: fix journal commit deadlock · 136f49b9
      Junxiao Bi authored
      For buffer write, page lock will be got in write_begin and released in
      write_end, in ocfs2_write_end_nolock(), before it unlock the page in
      ocfs2_free_write_ctxt(), it calls ocfs2_run_deallocs(), this will ask
      for the read lock of journal->j_trans_barrier.  Holding page lock and
      ask for journal->j_trans_barrier breaks the locking order.
      
      This will cause a deadlock with journal commit threads, ocfs2cmt will
      get write lock of journal->j_trans_barrier first, then it wakes up
      kjournald2 to do the commit work, at last it waits until done.  To
      commit journal, kjournald2 needs flushing data first, it needs get the
      cache page lock.
      
      Since some ocfs2 cluster locks are holding by write process, this
      deadlock may hung the whole cluster.
      
      unlock pages before ocfs2_run_deallocs() can fix the locking order, also
      put unlock before ocfs2_commit_trans() to make page lock is unlocked
      before j_trans_barrier to preserve unlocking order.
      Signed-off-by: default avatarJunxiao Bi <junxiao.bi@oracle.com>
      Reviewed-by: default avatarWengang Wang <wen.gang.wang@oracle.com>
      Cc: <stable@vger.kernel.org>
      Reviewed-by: default avatarMark Fasheh <mfasheh@suse.de>
      Cc: Joel Becker <jlbec@evilplan.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      136f49b9
    • Joseph Qi's avatar
      ocfs2/dlm: fix race between dispatched_work and dlm_lockres_grab_inflight_worker · 1e589581
      Joseph Qi authored
      Commit ac4fef4d ("ocfs2/dlm: do not purge lockres that is queued for
      assert master") may have the following possible race case:
      
        dlm_dispatch_assert_master       dlm_wq
        ========================================================================
        queue_work(dlm->quedlm_worker,
            &dlm->dispatched_work);
                                       dispatch work,
                                       dlm_lockres_drop_inflight_worker
                                       *BUG_ON(res->inflight_assert_workers == 0)*
        dlm_lockres_grab_inflight_worker
        inflight_assert_workers++
      
      So ensure inflight_assert_workers to be increased first.
      Signed-off-by: default avatarJoseph Qi <joseph.qi@huawei.com>
      Signed-off-by: default avatarXue jiufei <xuejiufei@huawei.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Reviewed-by: default avatarMark Fasheh <mfasheh@suse.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1e589581
    • Junxiao Bi's avatar
      ocfs2: reflink: fix slow unlink for refcounted file · f62f12b3
      Junxiao Bi authored
      When running ocfs2 test suite multiple nodes reflink stress test, for a
      4 nodes cluster, every unlink() for refcounted file needs about 700s.
      
      The slow unlink is caused by the contention of refcount tree lock since
      all nodes are unlink files using the same refcount tree.  When the
      unlinking file have many extents(over 1600 in our test), most of the
      extents has refcounted flag set.  In ocfs2_commit_truncate(), it will
      execute the following call trace for every extents.  This means it needs
      get and released refcount tree lock about 1600 times.  And when several
      nodes are do this at the same time, the performance will be very low.
      
        ocfs2_remove_btree_range()
        --  ocfs2_lock_refcount_tree()
        ----  ocfs2_refcount_lock()
        ------  __ocfs2_cluster_lock()
      
      ocfs2_refcount_lock() is costly, move it to ocfs2_commit_truncate() to
      do lock/unlock once can improve a lot performance.
      Signed-off-by: default avatarJunxiao Bi <junxiao.bi@oracle.com>
      Cc: Wengang <wen.gang.wang@oracle.com>
      Reviewed-by: default avatarMark Fasheh <mfasheh@suse.de>
      Cc: Joel Becker <jlbec@evilplan.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f62f12b3
    • Andrew Morton's avatar
      mm/memory.c:do_shared_fault(): add comment · d82fa87d
      Andrew Morton authored
      Belatedly document the changes in commit f0c6d4d2 ("mm: introduce
      do_shared_fault() and drop do_fault()").
      
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Bob Liu <lliubbo@gmail.com>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
      Cc: Matthew Wilcox <matthew.r.wilcox@intel.com>
      Cc: Mel Gorman <mgorman@suse.de>
      Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Sasha Levin <sasha.levin@oracle.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d82fa87d
    • Santosh Shilimkar's avatar
      .mailmap: Santosh Shilimkar has moved · 48332f28
      Santosh Shilimkar authored
      Add my new email address along with kernel.org email id
      Signed-off-by: default avatarSantosh Shilimkar <santosh.shilimkar@oracle.com>
      Signed-off-by: default avatarSantosh Shilimkar <ssantosh@kernel.org>
      Cc: Joe Perches <joe@perches.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      48332f28
    • Andrew Morton's avatar
      7d19c8ff
    • Vishnu Pratap Singh's avatar
      lib/show_mem.c: add cma reserved information · 49abd8c2
      Vishnu Pratap Singh authored
      Add cma reserved information which is currently shown as a part of total
      reserved only.  This patch is continuation of our previous cma patches
      related to this.
      
        https://lkml.org/lkml/2014/10/20/64
        https://lkml.org/lkml/2014/10/22/383
      
      [akpm@linux-foundation.org: remove hopefully-unneeded ifdefs]
      Signed-off-by: default avatarVishnu Pratap Singh <vishnu.ps@samsung.com>
      Cc: David Rientjes <rientjes@google.com>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Mel Gorman <mgorman@suse.de>
      Cc: Xishi Qiu <qiuxishi@huawei.com>
      Cc: Pintu Kumar <pintu.k@samsung.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      49abd8c2
    • Pintu Kumar's avatar
      fs/proc/meminfo.c: include cma info in proc/meminfo · 47f8f929
      Pintu Kumar authored
      This patch include CMA info (CMATotal, CMAFree) in /proc/meminfo.
      Currently, in a CMA enabled system, if somebody wants to know the total
      CMA size declared, there is no way to tell, other than the dmesg or
      /var/log/messages logs.
      
      With this patch we are showing the CMA info as part of meminfo, so that it
      can be determined at any point of time.  This will be populated only when
      CMA is enabled.
      
      Below is the sample output from a ARM based device with RAM:512MB and CMA:16MB.
      
        MemTotal:         471172 kB
        MemFree:          111712 kB
        MemAvailable:     271172 kB
        .
        .
        .
        CmaTotal:          16384 kB
        CmaFree:            6144 kB
      
      This patch also fix below checkpatch errors that were found during these changes.
      
        ERROR: space required after that ',' (ctx:ExV)
        199: FILE: fs/proc/meminfo.c:199:
        +       ,atomic_long_read(&num_poisoned_pages) << (PAGE_SHIFT - 10)
                ^
      
        ERROR: space required after that ',' (ctx:ExV)
        202: FILE: fs/proc/meminfo.c:202:
        +       ,K(global_page_state(NR_ANON_TRANSPARENT_HUGEPAGES) *
                ^
      
        ERROR: space required after that ',' (ctx:ExV)
        206: FILE: fs/proc/meminfo.c:206:
        +       ,K(totalcma_pages)
                ^
      
        total: 3 errors, 0 warnings, 2 checks, 236 lines checked
      Signed-off-by: default avatarPintu Kumar <pintu.k@samsung.com>
      Signed-off-by: default avatarVishnu Pratap Singh <vishnu.ps@samsung.com>
      Acked-by: default avatarMichal Nazarewicz <mina86@mina86.com>
      Cc: Rafael Aquini <aquini@redhat.com>
      Cc: Jerome Marchand <jmarchan@redhat.com>
      Cc: Marek Szyprowski <m.szyprowski@samsung.com>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      47f8f929
    • Pintu Kumar's avatar
      mm: cma: split cma-reserved in dmesg log · e48322ab
      Pintu Kumar authored
      When the system boots up, in the dmesg logs we can see the memory
      statistics along with total reserved as below.  Memory: 458840k/458840k
      available, 65448k reserved, 0K highmem
      
      When CMA is enabled, still the total reserved memory remains the same.
      However, the CMA memory is not considered as reserved.  But, when we see
      /proc/meminfo, the CMA memory is part of free memory.  This creates
      confusion.  This patch corrects the problem by properly subtracting the
      CMA reserved memory from the total reserved memory in dmesg logs.
      
      Below is the dmesg snapshot from an arm based device with 512MB RAM and
      12MB single CMA region.
      
      Before this change:
        Memory: 458840k/458840k available, 65448k reserved, 0K highmem
      
      After this change:
        Memory: 458840k/458840k available, 53160k reserved, 12288k cma-reserved, 0K highmem
      Signed-off-by: default avatarPintu Kumar <pintu.k@samsung.com>
      Signed-off-by: default avatarVishnu Pratap Singh <vishnu.ps@samsung.com>
      Acked-by: default avatarMichal Nazarewicz <mina86@mina86.com>
      Cc: Rafael Aquini <aquini@redhat.com>
      Cc: Jerome Marchand <jmarchan@redhat.com>
      Cc: Marek Szyprowski <m.szyprowski@samsung.com>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e48322ab
    • Sougata Santra's avatar
      hfsplus: fix longname handling · 89ac9b4d
      Sougata Santra authored
      Longname is not correctly handled by hfsplus driver.  If an attempt to
      create a longname(>255) file/directory is made, it succeeds by creating a
      file/directory with HFSPLUS_MAX_STRLEN and incorrect catalog key.  Thus
      leaving the volume in an inconsistent state.  This patch fixes this issue.
      
      Although lookup is always called first to create a negative entry, so just
      doing a check in lookup would probably fix this issue.  I choose to
      propagate error to other iops as well.
      
      Please NOTE: I have factored out hfsplus_cat_build_key_with_cnid from
      hfsplus_cat_build_key, to avoid unncessary branching.
      
      Thanks a lot.
      
        TEST:
        ------
        dir="TEST_DIR"
        cdir=`pwd`
        name255="_123456789_123456789_123456789_123456789_123456789_123456789\
        _123456789_123456789_123456789_123456789_123456789_123456789_123456789\
        _123456789_123456789_123456789_123456789_123456789_123456789_123456789\
        _123456789_123456789_123456789_123456789_123456789_1234"
        name256="${name255}5"
      
        mkdir $dir
        cd $dir
        touch $name255
        rm -f $name255
        touch $name256
        ls -la
        cd $cdir
        rm -rf $dir
      
        RESULT:
        -------
        [sougata@ultrabook tmp]$ cdir=`pwd`
        [sougata@ultrabook tmp]$
        name255="_123456789_123456789_123456789_123456789_123456789_123456789\
         > _123456789_123456789_123456789_123456789_123456789_123456789_123456789\
         > _123456789_123456789_123456789_123456789_123456789_123456789_123456789\
         > _123456789_123456789_123456789_123456789_123456789_1234"
        [sougata@ultrabook tmp]$ name256="${name255}5"
        [sougata@ultrabook tmp]$
        [sougata@ultrabook tmp]$ mkdir $dir
        [sougata@ultrabook tmp]$ cd $dir
        [sougata@ultrabook TEST_DIR]$ touch $name255
        [sougata@ultrabook TEST_DIR]$ rm -f $name255
        [sougata@ultrabook TEST_DIR]$ touch $name256
        [sougata@ultrabook TEST_DIR]$ ls -la
        ls: cannot access
        _123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_1234:
        No such file or directory
        total 0
        drwxrwxr-x 1 sougata sougata 3 Feb 20 19:56 .
        drwxrwxrwx 1 root    root    6 Feb 20 19:56 ..
        -????????? ? ?       ?       ?            ?
        _123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_1234
        [sougata@ultrabook TEST_DIR]$ cd $cdir
        [sougata@ultrabook tmp]$ rm -rf $dir
        rm: cannot remove `TEST_DIR': Directory not empty
      
      -ENAMETOOLONG returned from hfsplus_asc2uni was not propaged to iops.
      This allowed hfsplus to create files/directories with HFSPLUS_MAX_STRLEN
      and incorrect keys, leaving the FS in an inconsistent state.  This patch
      fixes this issue.
      Signed-off-by: default avatarSougata Santra <sougata@tuxera.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Cc: Vyacheslav Dubeyko <slava@dubeyko.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      89ac9b4d
    • Zhihui Zhang's avatar
      mm/mempolicy.c: remove unnecessary is_valid_nodemask() · 859f7ef1
      Zhihui Zhang authored
      When nodes is true, nsc->mask2 has already been filtered by nsc->mask1,
      which has already factored in node_states[N_MEMORY].
      Signed-off-by: default avatarZhihui Zhang <zzhsuny@gmail.com>
      Cc: Mel Gorman <mel@csn.ul.ie>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      859f7ef1
  2. 18 Dec, 2014 2 commits
    • Linus Torvalds's avatar
      Ceph: remove left-over reject file · 44e8967d
      Linus Torvalds authored
      Neither Sage nor I noticed that Zheng Yan had mistakenly committed
      fs/ceph/super.h.rej as part of commit 31c542a1 ("ceph: add inline
      data to pagecache").
      
      Remove it.
      Requested-by: default avatarYan, Zheng <ukernel@gmail.com>
      Cc: Sage Weil <sweil@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      44e8967d
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · 57666509
      Linus Torvalds authored
      Pull ceph updates from Sage Weil:
       "The big item here is support for inline data for CephFS and for
        message signatures from Zheng.  There are also several bug fixes,
        including interrupted flock request handling, 0-length xattrs, mksnap,
        cached readdir results, and a message version compat field.  Finally
        there are several cleanups from Ilya, Dan, and Markus.
      
        Note that there is another series coming soon that fixes some bugs in
        the RBD 'lingering' requests, but it isn't quite ready yet"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (27 commits)
        ceph: fix setting empty extended attribute
        ceph: fix mksnap crash
        ceph: do_sync is never initialized
        libceph: fixup includes in pagelist.h
        ceph: support inline data feature
        ceph: flush inline version
        ceph: convert inline data to normal data before data write
        ceph: sync read inline data
        ceph: fetch inline data when getting Fcr cap refs
        ceph: use getattr request to fetch inline data
        ceph: add inline data to pagecache
        ceph: parse inline data in MClientReply and MClientCaps
        libceph: specify position of extent operation
        libceph: add CREATE osd operation support
        libceph: add SETXATTR/CMPXATTR osd operations support
        rbd: don't treat CEPH_OSD_OP_DELETE as extent op
        ceph: remove unused stringification macros
        libceph: require cephx message signature by default
        ceph: introduce global empty snap context
        ceph: message versioning fixes
        ...
      57666509
  3. 17 Dec, 2014 25 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · 87c31b39
      Linus Torvalds authored
      Pull user namespace related fixes from Eric Biederman:
       "As these are bug fixes almost all of thes changes are marked for
        backporting to stable.
      
        The first change (implicitly adding MNT_NODEV on remount) addresses a
        regression that was created when security issues with unprivileged
        remount were closed.  I go on to update the remount test to make it
        easy to detect if this issue reoccurs.
      
        Then there are a handful of mount and umount related fixes.
      
        Then half of the changes deal with the a recently discovered design
        bug in the permission checks of gid_map.  Unix since the beginning has
        allowed setting group permissions on files to less than the user and
        other permissions (aka ---rwx---rwx).  As the unix permission checks
        stop as soon as a group matches, and setgroups allows setting groups
        that can not later be dropped, results in a situtation where it is
        possible to legitimately use a group to assign fewer privileges to a
        process.  Which means dropping a group can increase a processes
        privileges.
      
        The fix I have adopted is that gid_map is now no longer writable
        without privilege unless the new file /proc/self/setgroups has been
        set to permanently disable setgroups.
      
        The bulk of user namespace using applications even the applications
        using applications using user namespaces without privilege remain
        unaffected by this change.  Unfortunately this ix breaks a couple user
        space applications, that were relying on the problematic behavior (one
        of which was tools/selftests/mount/unprivileged-remount-test.c).
      
        To hopefully prevent needing a regression fix on top of my security
        fix I rounded folks who work with the container implementations mostly
        like to be affected and encouraged them to test the changes.
      
          > So far nothing broke on my libvirt-lxc test bed. :-)
          > Tested with openSUSE 13.2 and libvirt 1.2.9.
          > Tested-by: Richard Weinberger <richard@nod.at>
      
          > Tested on Fedora20 with libvirt 1.2.11, works fine.
          > Tested-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
      
          > Ok, thanks - yes, unprivileged lxc is working fine with your kernels.
          > Just to be sure I was testing the right thing I also tested using
          > my unprivileged nsexec testcases, and they failed on setgroup/setgid
          > as now expected, and succeeded there without your patches.
          > Tested-by: Serge Hallyn <serge.hallyn@ubuntu.com>
      
          > I tested this with Sandstorm.  It breaks as is and it works if I add
          > the setgroups thing.
          > Tested-by: Andy Lutomirski <luto@amacapital.net> # breaks things as designed :("
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        userns: Unbreak the unprivileged remount tests
        userns; Correct the comment in map_write
        userns: Allow setting gid_maps without privilege when setgroups is disabled
        userns: Add a knob to disable setgroups on a per user namespace basis
        userns: Rename id_map_mutex to userns_state_mutex
        userns: Only allow the creator of the userns unprivileged mappings
        userns: Check euid no fsuid when establishing an unprivileged uid mapping
        userns: Don't allow unprivileged creation of gid mappings
        userns: Don't allow setgroups until a gid mapping has been setablished
        userns: Document what the invariant required for safe unprivileged mappings.
        groups: Consolidate the setgroups permission checks
        mnt: Clear mnt_expire during pivot_root
        mnt: Carefully set CL_UNPRIVILEGED in clone_mnt
        mnt: Move the clear of MNT_LOCKED from copy_tree to it's callers.
        umount: Do not allow unmounting rootfs.
        umount: Disallow unprivileged mount force
        mnt: Update unprivileged remount test
        mnt: Implicitly add MNT_NODEV on remount when it was implicitly added by mount
      87c31b39
    • Linus Torvalds's avatar
      mmu_gather: fix over-eager tlb_flush_mmu_free() calling · f045bbb9
      Linus Torvalds authored
      Dave Hansen reports that commit fb7332a9 ("mmu_gather: move minimal
      range calculations into generic code") caused a performance problem:
      
        "tlb_finish_mmu() goes up about 9x in the profiles (~0.4%->3.6%) and
         tlb_flush_mmu_free() takes about 3.1% of CPU time with the patch
         applied, but does not show up at all on the commit before"
      
      and the reason is that Will moved the test for whether we need to flush
      from tlb_flush_mmu() into tlb_flush_mmu_tlbonly().  But that meant that
      tlb_flush_mmu_free() basically lost that check.
      
      Move it back into tlb_flush_mmu() where it belongs, so that it covers
      both tlb_flush_mmu_tlbonly() _and_ tlb_flush_mmu_free().
      Reported-and-tested-by: default avatarDave Hansen <dave@sr71.net>
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f045bbb9
    • Linus Torvalds's avatar
      x86: mm: fix VM_FAULT_RETRY handling · cf3c0a15
      Linus Torvalds authored
      My commit 26178ec1 ("x86: mm: consolidate VM_FAULT_RETRY handling")
      had a really stupid typo: the FAULT_FLAG_USER bit is in the 'flags'
      variable, not the 'fault' variable. Duh,
      
      The one silver lining in this is that Dave finding this at least
      confirms that trinity actually triggers this special path easily, in a
      way normal use does not.
      Reported-by: default avatarDave Jones <davej@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cf3c0a15
    • Linus Torvalds's avatar
      Merge tag 'vfio-v3.19-rc1' of git://github.com/awilliam/linux-vfio · cc669743
      Linus Torvalds authored
      Pull VFIO updates from Alex Williamson:
       - s390 support (Frank Blaschka)
       - Enable iommu-type1 for ARM SMMU (Will Deacon)
      
      * tag 'vfio-v3.19-rc1' of git://github.com/awilliam/linux-vfio:
        drivers/vfio: allow type-1 IOMMU instantiation on top of an ARM SMMU
        vfio: make vfio run on s390
      cc669743
    • Linus Torvalds's avatar
      Merge tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux · 9f3e1512
      Linus Torvalds authored
      Pull virtio updates from Rusty Russell:
       "A balloon enhancement, and a minor race-on-module-unload theoretical
        bug which doesn't merit cc: stable.
      
        All the exciting stuff went via MST this cycle"
      
      * tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
        virtio_balloon: free some memory from balloon on OOM
        virtio_balloon: return the amount of freed memory from leak_balloon()
        virtio_blk: fix race at module removal
        virtio: Fix comment typo 'CONFIG_S_FAILED'
      9f3e1512
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · 2efda904
      Linus Torvalds authored
      Pull thermal management update from Zhang Rui:
       "Summary:
      
         - of-thermal extension to allow drivers to register and use its
           functionality in a better way, without exploiting thermal core.
           From Lukasz Majewski.
      
         - Fix a bug in intel_soc_dts_thermal driver which calls a sleep
           function in interrupt handler.  From Maurice Petallo.
      
         - add a thermal UAPI header file for exporting the thermal generic
           netlink information to user-space.  From Florian Fainelli.
      
         - First round of refactoring in Exynos driver.  Bartlomiej and Lukasz
           are attempting to make it lean and easier to understand.
      
         - New thermal driver for Rockchip (rk3288), with support for DT
           thermal.  From Caesar Wang.
      
         - New thermal driver for Nvidia, Tegra124 SOCTHERM driver, with
           support for DT thermal.  From Mikko Perttunen.
      
         - New cooling device, based on common clock framework.  From Eduardo
           Valentin.
      
         - a couple of small fixes in thermal core framework.  From Srinivas
           Pandruvada, Javi Merino, Luis Henriques.
      
         - Dropping Armada A375-Z1 SoC thermal support as the chip is not in
           the market, armada folks decided to drop its support.
      
         - a couple of small fixes and cleanups in int340x thermal driver"
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (58 commits)
        thermal: provide an UAPI header file
        Thermal/int340x: Clear the error value of the last acpi_bus_get_device() call
        thermal/powerclamp: add id for braswell cpu
        thermal: Intel SoC DTS: Don't do thermal zone update inside spin_lock
        Thermal: fix platform_no_drv_owner.cocci warnings
        Thermal/int340x: avoid unnecessary pointer casting
        thermal: int3403: Delete a check before thermal_zone_device_unregister()
        thermal/int3400: export uuids
        thermal: of: Extend current of-thermal.c code to allow setting emulated temp
        thermal: of: Extend of-thermal to export table of trip points
        thermal: of: Rename struct __thermal_trip to struct thermal_trip
        thermal: of: Extend of-thermal.c to provide check if trip point is valid
        thermal: of: Extend of-thermal.c to provide number of trip points
        thermal: Fix error path in thermal_init()
        thermal: lock the thermal zone when switching governors
        thermal: core: ignore invalid trip temperature
        thermal: armada: Remove support for A375-Z1 SoC
        thermal: rockchip: add driver for thermal
        dt-bindings: document Rockchip thermal
        thermal: exynos: remove exynos_tmu_data.h include
        ...
      2efda904
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-3.19-rc1' of... · 0b4954c4
      Linus Torvalds authored
      Merge tag 'pwm/for-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
      
      Pull pwm updates from Thierry Reding:
       "There are two new drivers, one for the BCM2835 (Raspberry Pi) and one
        used in conjunction with the LCD controller on various Atmel SoCs.
        The Samsung PWM driver can now be built for 64-bit ARM (Exynos7).
      
        A couple of fixes have been applied to the FTM PWM driver and system
        sleep support was added"
      
      * tag 'pwm/for-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm:
        pwm: atmel-hlcdc: add at91sam9x5 and sama5d3 errata handling
        pwm: ftm: Add Power Management support for FTM PWM
        pwm: ftm: Add regmap rbtree type cache support
        pwm: ftm: Correctly track usage count
        pwm: samsung: Allow Samsung PWM driver to be enabled on Exynos7
        pwm: add DT bindings documentation for atmel-hlcdc-pwm driver
        pwm: add support for atmel-hlcdc-pwm device
        pwm: Add BCM2835 PWM driver
      0b4954c4
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · d797da41
      Linus Torvalds authored
      Pull input subsystem updates from Dmitry Torokhov:
       "Two new drivers for Elan hardware (for I2C touchpad and touchscreen
        found in several Chromebooks and other devices), a driver for Goodix
        touch panel, and small fixes to Cypress I2C trackpad and other input
        drivers.
      
        Also we switched to use __maybe_unused instead of gating suspend/
        resume code with #ifdef guards to get better compile coverage"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (27 commits)
        Input: gpio_keys - fix warning regarding uninitialized 'button' variable
        Input: add support for Elan eKTH I2C touchscreens
        Input: gpio_keys - fix warning regarding uninitialized  'irq' variable
        Input: cyapa - use 'error' for error codes
        Input: cyapa - fix resuming the device
        Input: gpio_keys - add device tree support for interrupt only keys
        Input: amikbd - allocate temporary keymap buffer on the stack
        Input: amikbd - fix build if !CONFIG_HW_CONSOLE
        Input: lm8323 - missing error check in lm8323_set_disable()
        Input: initialize device counter variables with -1
        Input: initialize input_no to -1 to avoid subtraction
        Input: i8042 - do not try to load on Intel NUC D54250WYK
        Input: atkbd - correct MSC_SCAN events for force_release keys
        Input: cyapa - switch to using managed resources
        Input: lifebook - use "static inline" instead of "inline" in lifebook.h
        Input: touchscreen - use __maybe_unused instead of ifdef around suspend/resume
        Input: mouse - use __maybe_unused instead of ifdef around suspend/resume
        Input: misc - use __maybe_unused instead of ifdef around suspend/resume
        Input: cap11xx - support for irq-active-high option
        Input: cap11xx - add support for various cap11xx devices
        ...
      d797da41
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20141215' of git://git.infradead.org/linux-mtd · d6666be6
      Linus Torvalds authored
      Pull MTD updates from Brian Norris:
       "Summary:
         - Add device tree support for DoC3
      
         - SPI NOR:
              Refactoring, for better layering between spi-nor.c and its
              driver users (e.g., m25p80.c)
      
              New flash device support
      
              Support 6-byte ID strings
      
         - NAND:
              New NAND driver for Allwinner SoC's (sunxi)
      
              GPMI NAND: add support for raw (no ECC) access, for testing
              purposes
      
              Add ATO manufacturer ID
      
              A few odd driver fixes
      
         - MTD tests:
              Allow testers to compensate for OOB bitflips in oobtest
      
              Fix a torturetest regression
      
         - nandsim: Support longer ID byte strings
      
        And more"
      
      * tag 'for-linus-20141215' of git://git.infradead.org/linux-mtd: (63 commits)
        mtd: tests: abort torturetest on erase errors
        mtd: physmap_of: fix potential NULL dereference
        mtd: spi-nor: allow NULL as chip name and try to auto detect it
        mtd: nand: gpmi: add raw oob access functions
        mtd: nand: gpmi: add proper raw access support
        mtd: nand: gpmi: add gpmi_copy_bits function
        mtd: spi-nor: factor out write_enable() for erase commands
        mtd: spi-nor: add support for s25fl128s
        mtd: spi-nor: remove the jedec_id/ext_id
        mtd: spi-nor: add id/id_len for flash_info{}
        mtd: nand: correct the comment of function nand_block_isreserved()
        jffs2: Drop bogus if in comment
        mtd: atmel_nand: replace memcpy32_toio/memcpy32_fromio with memcpy
        mtd: cafe_nand: drop duplicate .write_page implementation
        mtd: m25p80: Add support for serial flash Spansion S25FL132K
        MTD: m25p80: fix inconsistency in m25p_ids compared to spi_nor_ids
        mtd: spi-nor: improve wait-till-ready timeout loop
        mtd: delete unnecessary checks before two function calls
        mtd: nand: omap: Fix NAND enumeration on 3430 LDP
        mtd: nand: add ATO manufacturer info
        ...
      d6666be6
    • Linus Torvalds's avatar
      Merge tag 'microblaze-3.19-rc1' of git://git.monstr.eu/linux-2.6-microblaze · 0ea90b9e
      Linus Torvalds authored
      Pull Microblaze fix from Michal Simek:
       "Fix mmap for cache coherent memory"
      
      * tag 'microblaze-3.19-rc1' of git://git.monstr.eu/linux-2.6-microblaze:
        microblaze: Fix mmap for cache coherent memory
      0ea90b9e
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 5f5425ef
      Linus Torvalds authored
      Pull security subsystem fixes from James Morris.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        KEYS: remove a bogus NULL check
        ima: Fix build failure on powerpc when TCG_IBMVTPM dependencies are not met
        KEYS: Fix stale key registration at error path
      5f5425ef
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · c103b21c
      Linus Torvalds authored
      Pull fuse update from Miklos Szeredi:
       "The first part makes sure we don't hold up umount with pending async
        requests.  In addition to being a cleanup, this is a small behavioral
        change (for the better) and unlikely to break anything.
      
        The second part prepares for a cleanup of the fuse device I/O code by
        adding a helper for simple request submission, with some savings in
        line numbers already realized"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
        fuse: use file_inode() in fuse_file_fallocate()
        fuse: introduce fuse_simple_request() helper
        fuse: reduce max out args
        fuse: hold inode instead of path after release
        fuse: flush requests on umount
        fuse: don't wake up reserved req in fuse_conn_kill()
      c103b21c
    • Yan, Zheng's avatar
      ceph: fix setting empty extended attribute · 0aeff37a
      Yan, Zheng authored
      make sure 'value' is not null. otherwise __ceph_setxattr will remove
      the extended attribute.
      Signed-off-by: default avatarYan, Zheng <zyan@redhat.com>
      Reviewed-by: default avatarSage Weil <sage@redhat.com>
      0aeff37a
    • Yan, Zheng's avatar
      ceph: fix mksnap crash · 275dd19e
      Yan, Zheng authored
      mksnap reply only contain 'target', does not contain 'dentry'. So
      it's wrong to use req->r_reply_info.head->is_dentry to detect traceless
      reply.
      Signed-off-by: default avatarYan, Zheng <zyan@redhat.com>
      Reviewed-by: default avatarSage Weil <sage@redhat.com>
      275dd19e
    • Dan Carpenter's avatar
      ceph: do_sync is never initialized · 021b77be
      Dan Carpenter authored
      Probably this code was syncing a lot more often then intended because
      the do_sync variable wasn't set to zero.
      
      Cc: stable@vger.kernel.org # v3.11+
      Fixes: c62988ec ('ceph: avoid meaningless calling ceph_caps_revoking if sync_mode == WB_SYNC_ALL.')
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarIlya Dryomov <idryomov@redhat.com>
      021b77be
    • Ilya Dryomov's avatar
      libceph: fixup includes in pagelist.h · 84a1d2d1
      Ilya Dryomov authored
      pagelist.h needs to include linux/types.h and asm/byteorder.h and not
      rely on other headers pulling yet another set of headers.
      Signed-off-by: default avatarIlya Dryomov <idryomov@redhat.com>
      84a1d2d1
    • Yan, Zheng's avatar
      ceph: support inline data feature · 65a22662
      Yan, Zheng authored
      Signed-off-by: default avatarYan, Zheng <zyan@redhat.com>
      65a22662
    • Yan, Zheng's avatar
      ceph: flush inline version · e20d258d
      Yan, Zheng authored
      After converting inline data to normal data, client need to flush
      the new i_inline_version (CEPH_INLINE_NONE) to MDS. This commit makes
      cap messages (sent to MDS) contain inline_version and inline_data.
      Client always converts inline data to normal data before data write,
      so the inline data length part is always zero.
      Signed-off-by: default avatarYan, Zheng <zyan@redhat.com>
      e20d258d
    • Yan, Zheng's avatar
      ceph: convert inline data to normal data before data write · 28127bdd
      Yan, Zheng authored
      Before any data write, convert inline data to normal data and set
      i_inline_version to CEPH_INLINE_NONE. The OSD request that saves
      inline data to object contains 3 operations (CMPXATTR, WRITE and
      SETXATTR). It compares a xattr named 'inline_version' to prevent
      old data overwrites newer data.
      Signed-off-by: default avatarYan, Zheng <zyan@redhat.com>
      28127bdd
    • Yan, Zheng's avatar
      ceph: sync read inline data · 83701246
      Yan, Zheng authored
      we can't use getattr to fetch inline data while holding Fr cap,
      because it can cause deadlock. If we need to sync read inline data,
      drop cap refs first, then use getattr to fetch inline data.
      Signed-off-by: default avatarYan, Zheng <zyan@redhat.com>
      83701246
    • Yan, Zheng's avatar
      ceph: fetch inline data when getting Fcr cap refs · 3738daa6
      Yan, Zheng authored
      we can't use getattr to fetch inline data after getting Fcr caps,
      because it can cause deadlock. The solution is try bringing inline
      data to page cache when not holding any cap, and hope the inline
      data page is still there after getting the Fcr caps. If the page
      is still there, pin it in page cache for later IO.
      Signed-off-by: default avatarYan, Zheng <zyan@redhat.com>
      3738daa6
    • Yan, Zheng's avatar
      ceph: use getattr request to fetch inline data · 01deead0
      Yan, Zheng authored
      Add a new parameter 'locked_page' to ceph_do_getattr(). If inline data
      in getattr reply will be copied to the page.
      Signed-off-by: default avatarYan, Zheng <zyan@redhat.com>
      01deead0
    • Yan, Zheng's avatar
      ceph: add inline data to pagecache · 31c542a1
      Yan, Zheng authored
      Request reply and cap message can contain inline data. add inline data
      to the page cache if there is Fc cap.
      Signed-off-by: default avatarYan, Zheng <zyan@redhat.com>
      31c542a1
    • Yan, Zheng's avatar
      fb01d1f8
    • Yan, Zheng's avatar
      libceph: specify position of extent operation · 715e4cd4
      Yan, Zheng authored
      allow specifying position of extent operation in multi-operations
      osd request. This is required for cephfs to convert inline data to
      normal data (compare xattr, then write object).
      Signed-off-by: default avatarYan, Zheng <zyan@redhat.com>
      Reviewed-by: default avatarIlya Dryomov <idryomov@redhat.com>
      715e4cd4