1. 13 Aug, 2014 4 commits
    • Linus Torvalds's avatar
      Merge tag 'xfs-for-linus-3.17-rc1' of git://oss.sgi.com/xfs/xfs · dc1cc851
      Linus Torvalds authored
      Pull xfs update from Dave Chinner:
       "This update contains:
         - conversion of the XFS core to pass negative error numbers
         - restructing of core XFS code that is shared with userspace to
           fs/xfs/libxfs
         - introduction of sysfs interface for XFS
         - bulkstat refactoring
         - demand driven speculative preallocation removal
         - XFS now always requires 64 bit sectors to be configured
         - metadata verifier changes to ensure CRCs are calculated during log
           recovery
         - various minor code cleanups
         - miscellaneous bug fixes
      
        The diffstat is kind of noisy because of the restructuring of the code
        to make kernel/userspace code sharing simpler, along with the XFS wide
        change to use the standard negative error return convention (at last!)"
      
      * tag 'xfs-for-linus-3.17-rc1' of git://oss.sgi.com/xfs/xfs: (45 commits)
        xfs: fix coccinelle warnings
        xfs: flush both inodes in xfs_swap_extents
        xfs: fix swapext ilock deadlock
        xfs: kill xfs_vnode.h
        xfs: kill VN_MAPPED
        xfs: kill VN_CACHED
        xfs: kill VN_DIRTY()
        xfs: dquot recovery needs verifiers
        xfs: quotacheck leaves dquot buffers without verifiers
        xfs: ensure verifiers are attached to recovered buffers
        xfs: catch buffers written without verifiers attached
        xfs: avoid false quotacheck after unclean shutdown
        xfs: fix rounding error of fiemap length parameter
        xfs: introduce xfs_bulkstat_ag_ichunk
        xfs: require 64-bit sector_t
        xfs: fix uflags detection at xfs_fs_rm_xquota
        xfs: remove XFS_IS_OQUOTA_ON macros
        xfs: tidy up xfs_set_inode32
        xfs: allow inode allocations in post-growfs disk space
        xfs: mark xfs_qm_quotacheck as static
        ...
      dc1cc851
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · cec99709
      Linus Torvalds authored
      Pull quota, reiserfs, UDF updates from Jan Kara:
       "Scalability improvements for quota, a few reiserfs fixes, and couple
        of misc cleanups (udf, ext2)"
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        reiserfs: Fix use after free in journal teardown
        reiserfs: fix corruption introduced by balance_leaf refactor
        udf: avoid redundant memcpy when writing data in ICB
        fs/udf: re-use hex_asc_upper_{hi,lo} macros
        fs/quota: kernel-doc warning fixes
        udf: use linux/uaccess.h
        fs/ext2/super.c: Drop memory allocation cast
        quota: remove dqptr_sem
        quota: simplify remove_inode_dquot_ref()
        quota: avoid unnecessary dqget()/dqput() calls
        quota: protect Q_GETFMT by dqonoff_mutex
      cec99709
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · 8d2d441a
      Linus Torvalds authored
      Pull Ceph updates from Sage Weil:
       "There is a lot of refactoring and hardening of the libceph and rbd
        code here from Ilya that fix various smaller bugs, and a few more
        important fixes with clone overlap.  The main fix is a critical change
        to the request_fn handling to not sleep that was exposed by the recent
        mutex changes (which will also go to the 3.16 stable series).
      
        Yan Zheng has several fixes in here for CephFS fixing ACL handling,
        time stamps, and request resends when the MDS restarts.
      
        Finally, there are a few cleanups from Himangi Saraogi based on
        Coccinelle"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (39 commits)
        libceph: set last_piece in ceph_msg_data_pages_cursor_init() correctly
        rbd: remove extra newlines from rbd_warn() messages
        rbd: allocate img_request with GFP_NOIO instead GFP_ATOMIC
        rbd: rework rbd_request_fn()
        ceph: fix kick_requests()
        ceph: fix append mode write
        ceph: fix sizeof(struct tYpO *) typo
        ceph: remove redundant memset(0)
        rbd: take snap_id into account when reading in parent info
        rbd: do not read in parent info before snap context
        rbd: update mapping size only on refresh
        rbd: harden rbd_dev_refresh() and callers a bit
        rbd: split rbd_dev_spec_update() into two functions
        rbd: remove unnecessary asserts in rbd_dev_image_probe()
        rbd: introduce rbd_dev_header_info()
        rbd: show the entire chain of parent images
        ceph: replace comma with a semicolon
        rbd: use rbd_segment_name_free() instead of kfree()
        ceph: check zero length in ceph_sync_read()
        ceph: reset r_resend_mds after receiving -ESTALE
        ...
      8d2d441a
    • Linus Torvalds's avatar
      Merge tag 'upstream-3.17-rc1' of git://git.infradead.org/linux-ubifs · 89838b80
      Linus Torvalds authored
      Pull UBI/UBIFS changes from Artem Bityutskiy:
       "No significant changes, mostly small fixes here and there.  The more
        important fixes are:
      
         - UBI deleted list items while iterating the list with
           'list_for_each_entry'
         - The UBI block driver did not work properly with very large UBI
           volumes"
      
      * tag 'upstream-3.17-rc1' of git://git.infradead.org/linux-ubifs: (21 commits)
        UBIFS: Add log overlap assertions
        Revert "UBIFS: add a log overlap assertion"
        UBI: bugfix in ubi_wl_flush()
        UBI: block: Avoid disk size integer overflow
        UBI: block: Set disk_capacity out of the mutex
        UBI: block: Make ubiblock_resize return something
        UBIFS: add a log overlap assertion
        UBIFS: remove unnecessary check
        UBIFS: remove mst_mutex
        UBIFS: kernel-doc warning fix
        UBI: init_volumes: Ignore volumes with no LEBs
        UBIFS: replace seq_printf by seq_puts
        UBIFS: replace count*size kzalloc by kcalloc
        UBIFS: kernel-doc warning fix
        UBIFS: fix error path in create_default_filesystem()
        UBIFS: fix spelling of "scanned"
        UBIFS: fix some comments
        UBIFS: remove useless @ecc in struct ubifs_scan_leb
        UBIFS: remove useless statements
        UBIFS: Add missing break statements in dbg_chk_pnode()
        ...
      89838b80
  2. 12 Aug, 2014 1 commit
    • Jan Kara's avatar
      reiserfs: Fix use after free in journal teardown · 01777836
      Jan Kara authored
      If do_journal_release() races with do_journal_end() which requeues
      delayed works for transaction flushing, we can leave work items for
      flushing outstanding transactions queued while freeing them. That
      results in use after free and possible crash in run_timers_softirq().
      
      Fix the problem by not requeueing works if superblock is being shut down
      (MS_ACTIVE not set) and using cancel_delayed_work_sync() in
      do_journal_release().
      
      CC: stable@vger.kernel.org
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      01777836
  3. 11 Aug, 2014 9 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · f6f99332
      Linus Torvalds authored
      Pull vfs updates from Al Viro:
       "Stuff in here:
      
         - acct.c fixes and general rework of mnt_pin mechanism.  That allows
           to go for delayed-mntput stuff, which will permit mntput() on deep
           stack without worrying about stack overflows - fs shutdown will
           happen on shallow stack.  IOW, we can do Eric's umount-on-rmdir
           series without introducing tons of stack overflows on new mntput()
           call chains it introduces.
         - Bruce's d_splice_alias() patches
         - more Miklos' rename() stuff.
         - a couple of regression fixes (stable fodder, in the end of branch)
           and a fix for API idiocy in iov_iter.c.
      
        There definitely will be another pile, maybe even two.  I'd like to
        get Eric's series in this time, but even if we miss it, it'll go right
        in the beginning of for-next in the next cycle - the tricky part of
        prereqs is in this pile"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (40 commits)
        fix copy_tree() regression
        __generic_file_write_iter(): fix handling of sync error after DIO
        switch iov_iter_get_pages() to passing maximal number of pages
        fs: mark __d_obtain_alias static
        dcache: d_splice_alias should detect loops
        exportfs: update Exporting documentation
        dcache: d_find_alias needn't recheck IS_ROOT && DCACHE_DISCONNECTED
        dcache: remove unused d_find_alias parameter
        dcache: d_obtain_alias callers don't all want DISCONNECTED
        dcache: d_splice_alias should ignore DCACHE_DISCONNECTED
        dcache: d_splice_alias mustn't create directory aliases
        dcache: close d_move race in d_splice_alias
        dcache: move d_splice_alias
        namei: trivial fix to vfs_rename_dir comment
        VFS: allow ->d_manage() to declare -EISDIR in rcu_walk mode.
        cifs: support RENAME_NOREPLACE
        hostfs: support rename flags
        shmem: support RENAME_EXCHANGE
        shmem: support RENAME_NOREPLACE
        btrfs: add RENAME_NOREPLACE
        ...
      f6f99332
    • Al Viro's avatar
      fix copy_tree() regression · 12a5b529
      Al Viro authored
      Since 3.14 we had copy_tree() get the shadowing wrong - if we had one
      vfsmount shadowing another (i.e. if A is a slave of B, C is mounted
      on A/foo, then D got mounted on B/foo creating D' on A/foo shadowed
      by C), copy_tree() of A would make a copy of D' shadow the the copy of
      C, not the other way around.
      
      It's easy to fix, fortunately - just make sure that mount follows
      the one that shadows it in mnt_child as well as in mnt_hash, and when
      copy_tree() decides to attach a new mount, check if the last child
      it has added to the same parent should be shadowing the new one.
      And if it should, just use the same logics commit_tree() has - put the
      new mount into the hash and children lists right after the one that
      should shadow it.
      
      Cc: stable@vger.kernel.org [3.14 and later]
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      12a5b529
    • Al Viro's avatar
      __generic_file_write_iter(): fix handling of sync error after DIO · 60bb4529
      Al Viro authored
      If DIO results in short write and sync write fails, we want to bugger off
      whether the DIO part has written anything or not; the logics on the return
      will take care of the right return value.
      
      Cc: stable@vger.kernel.org [3.16]
      Reported-by: default avatarAnton Altaparmakov <aia21@cam.ac.uk>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      60bb4529
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma · c7a19c79
      Linus Torvalds authored
      Pull slave-dma updates from Vinod Koul:
       "Some notable changes are:
         - new driver for AMBA AXI NBPF by Guennadi
         - new driver for sun6i controller by Maxime
         - pl330 drivers fixes from Lar's
         - sh-dma updates and fixes from Laurent, Geert and Kuninori
         - Documentation updates from Geert
         - drivers fixes and updates spread over dw, edma, freescale, mpc512x
           etc.."
      
      * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (72 commits)
        dmaengine: sun6i: depends on RESET_CONTROLLER
        dma: at_hdmac: fix invalid remaining bytes detection
        dmaengine: nbpfaxi: don't build this driver where it cannot be used
        dmaengine: nbpf_error_get_channel() can be static
        dma: pl08x: Use correct specifier for size_t values
        dmaengine: Remove the context argument to the prep_dma_cyclic operation
        dmaengine: nbpfaxi: convert to tasklet
        dmaengine: nbpfaxi: fix a theoretical race
        dmaengine: add a driver for AMBA AXI NBPF DMAC IP cores
        dmaengine: add device tree binding documentation for the nbpfaxi driver
        dmaengine: edma: Do not register second device when booted with DT
        dmaengine: edma: Do not change the error code returned from edma_alloc_slot
        dmaengine: rcar-dmac: Add device tree bindings documentation
        dmaengine: shdma: Allocate cyclic sg list dynamically
        dmaengine: shdma: Make channel filter ignore unrelated devices
        dmaengine: sh: Rework Kconfig and Makefile
        dmaengine: sun6i: Fix memory leaks
        dmaengine: sun6i: Free the interrupt before killing the tasklet
        dmaengine: sun6i: Remove switch statement from buswidth convertion routine
        dmaengine: of: kconfig: select DMA_ENGINE when DMA_OF is selected
        ...
      c7a19c79
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · 5fd41f2a
      Linus Torvalds authored
      Pull thermal updates from Zhang Rui:
       "Specifics:
      
         - adds full support for 2 types of Thermal Controllers produced by
           STMicroelectronics.  One is a more traditional memory mapped
           variant, the other is controlled solely by system configuration
           registers.  From Lee Jones.
      
         - add TMU (Thermal Management Unit) support for Exynos3250 Soc.
           From Chanwoo Choi.
      
         - add critical and passive trip point support for int3403 thermal
           driver.  From Srinivas Pandruvada.
      
         - a couple of small fixes/cleanups from Javi Merino, and Geert
           Uytterhoeven"
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
        thermal: document struct thermal_zone_device and thermal_governor
        thermal: cpu_cooling: fix typo highjack -> hijack
        thermal: rcar: Document SoC-specific bindings
        thermal: samsung: Add TMU support for Exynos3250 SoC
        thermal: exynos: fix ordering in exynos_tmu_remove()
        thermal: allow building dove_thermal with mvebu
        thermal: sti: Add support for ST's Memory Mapped based Thermal controller
        thermal: sti: Add support for ST's System Config Register based Thermal controller
        thermal: sti: Introduce ST Thermal core code
        thermal: sti: Supply Device Tree documentation
        Thermal: int3403: Add CRT and PSV trip
      5fd41f2a
    • Linus Torvalds's avatar
      Merge tag 'md/3.17' of git://neil.brown.name/md · 2213d7c2
      Linus Torvalds authored
      Pull md updates from Neil Brown:
       "Most interesting is that md devices (major == 9) with minor numbers of
        512 or more will no longer be created simply by opening a block device
        file.  They can only be created by writing to
      
            /sys/module/md_mod/parameters/new_array
      
        The 'auto-create-on-open' semantic is cumbersome and we need to start
        moving away from it"
      
      * tag 'md/3.17' of git://neil.brown.name/md:
        md: don't allow bitmap file to be added to raid0/linear.
        md/raid0: check for bitmap compatability when changing raid levels.
        md: Recovery speed is wrong
        md: disable probing for md devices 512 and over.
        md/raid1,raid10: always abort recover on write error.
      2213d7c2
    • Linus Torvalds's avatar
      Merge tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux · c8d6637d
      Linus Torvalds authored
      Pull module updates from Rusty Russell:
       "This finally applies the stricter sysfs perms checking we pulled out
        before last merge window.  A few stragglers are fixed (thanks
        linux-next!)"
      
      * tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
        arch/powerpc/platforms/powernv/opal-dump.c: fix world-writable sysfs files
        arch/powerpc/platforms/powernv/opal-elog.c: fix world-writable sysfs files
        drivers/video/fbdev/s3c2410fb.c: don't make debug world-writable.
        ARM: avoid ARM binutils leaking ELF local symbols
        scripts: modpost: Remove numeric suffix pattern matching
        scripts: modpost: fix compilation warning
        sysfs: disallow world-writable files.
        module: return bool from within_module*()
        module: add within_module() function
        modules: Fix build error in moduleloader.h
      c8d6637d
    • Linus Torvalds's avatar
      Merge tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux · 801a71a8
      Linus Torvalds authored
      Pull virtio updates from Rusty Russell.
      
      * tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
        Revert "hwrng: virtio - ensure reads happen after successful probe"
        virtio: rng: delay hwrng_register() till driver is ready
        virtio: rng: re-arrange struct elements for better packing
        virtio: rng: remove unused struct element
        virtio: Replace DEFINE_PCI_DEVICE_TABLE macro use
        virtio: console: remove unnecessary null test before debugfs_remove_recursive
      801a71a8
    • Linus Torvalds's avatar
      Revert "proc: Point /proc/{mounts,net} at /proc/thread-self/{mounts,net}... · 155134fe
      Linus Torvalds authored
      Revert "proc: Point /proc/{mounts,net} at /proc/thread-self/{mounts,net} instead of /proc/self/{mounts,net}"
      
      This reverts commits 344470ca and e8132440.
      
      It turns out that the exact path in the symlink matters, if for somewhat
      unfortunate reasons: some apparmor configurations don't allow dhclient
      access to the per-thread /proc files.  As reported by Jörg Otte:
      
        audit: type=1400 audit(1407684227.003:28): apparmor="DENIED"
          operation="open" profile="/sbin/dhclient"
          name="/proc/1540/task/1540/net/dev" pid=1540 comm="dhclient"
          requested_mask="r" denied_mask="r" fsuid=0 ouid=0
      
      so we had better revert this for now.  We might be able to work around
      this in practice by only using the per-thread symlinks if the thread
      isn't the thread group leader, and if the namespaces differ between
      threads (which basically never happens).
      
      We'll see. In the meantime, the revert was made to be intentionally easy.
      Reported-by: default avatarJörg Otte <jrg.otte@gmail.com>
      Acked-by: default avatarEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      155134fe
  4. 10 Aug, 2014 6 commits
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/olof/chrome-platform · 58d08e3b
      Linus Torvalds authored
      Pull chrome platform updates from Olof Johansson:
       "Updates to the Chromebook/box platform drivers:
      
         - a bugfix to pstore registration that makes it also work on
           non-Google systems
         - addition of new shipped Chromebooks (later models have more probing
           through ACPI so the need for these updates will be less over time).
         - A couple of minor coding style updates"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/olof/chrome-platform:
        platform/chrome: chromeos_laptop - Add a limit for deferred retries
        platform/chrome: Add support for the acer c720p touchscreen.
        platform/chrome: pstore: fix dmi table to match all chrome systems
        platform/chrome: coding style fixes
        platform/chrome: chromeos_laptop - Add Toshiba CB35 Touch
        platform/chrome: chromeos_laptop - Add Dell Chromebook 11 touch
        platform/chrome: chromeos_laptop - Add HP Chromebook 14
        platform/chrome: chromeos_laptop - Add support for Acer C720
      58d08e3b
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 64e3bbc7
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       - a short branch of OMAP fixes that we didn't merge before the window
         opened.
       - a small cleanup that sorts the rk3288 dts entries properly
       - a build fix due to a reference to a removed DT node on exynos
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: dts: exynos5420: remove disp_pd
        ARM: EXYNOS: Fix suspend/resume sequences
        ARM: dts: Fix the sort ordering of EHCI and HSIC in rk3288.dtsi
        ARM: OMAP3: Fix coding style problems in arch/arm/mach-omap2/control.c
        ARM: OMAP3: Fix choice of omap3_restore_es function in OMAP34XX rev3.1.2 case.
        ARM: OMAP2+: clock: allow omap2_dpll_round_rate() to round to next-lowest rate
      64e3bbc7
    • Linus Torvalds's avatar
      Merge branch 'linux-3.17' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 · 91384758
      Linus Torvalds authored
      Pull nouveau drm updates from Ben Skeggs:
       "Apologies for not getting this done in time for Dave's drm-next merge
        window.  As he mentioned, a pre-existing bug reared its head a lot
        more obviously after this lot of changes.  It took quite a bit of time
        to track it down.  In any case, Dave suggested I try my luck by
        sending directly to you this time.
      
        Overview:
      
         - more code for Tegra GK20A from NVIDIA - probing, reclockig
         - better fix for Kepler GPUs that have the graphics engine powered
           off on startup, method courtesy of info provided by NVIDIA
         - unhardcoding of a bunch of graphics engine setup on
           Fermi/Kepler/Maxwell, will hopefully solve some issues people have
           noticed on higher-end models
         - support for "Zero Bandwidth Clear" on Fermi/Kepler/Maxwell, needs
           userspace support in general, but some lucky apps will benefit
           automagically
         - reviewed/exposed the full object APIs to userspace (finally), gives
           it access to perfctrs, ZBC controls, various events.  More to come
           in the future.
         - various other fixes"
      Acked-by: default avatarDave Airlie <airlied@redhat.com>
      
      * 'linux-3.17' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: (87 commits)
        drm/nouveau: expose the full object/event interfaces to userspace
        drm/nouveau: fix headless mode
        drm/nouveau: hide sysfs pstate file behind an option again
        drm/nv50/disp: shhh compiler
        drm/gf100-/gr: implement the proper SetShaderExceptions method
        drm/gf100-/gr: remove some broken ltc bashing, for now
        drm/gf100-/gr: unhardcode attribute cb config
        drm/gf100-/gr: fetch tpcs-per-ppc info on startup
        drm/gf100-/gr: unhardcode pagepool config
        drm/gf100-/gr: unhardcode bundle cb config
        drm/gf100-/gr: improve initial context patch list helpers
        drm/gf100-/gr: add support for zero bandwidth clear
        drm/nouveau/ltc: add zbc drivers
        drm/nouveau/ltc: s/ltcg/ltc/ + cleanup
        drm/nouveau: use ram info from nvif_device
        drm/nouveau/disp: implement nvif event sources for vblank/connector notifiers
        drm/nouveau/disp: allow user direct access to channel control registers
        drm/nouveau/disp: audit and version display classes
        drm/nouveau/disp: audit and version SCANOUTPOS method
        drm/nv50-/disp: audit and version PIOR_PWR method
        ...
      91384758
    • Linus Torvalds's avatar
      Merge tag 'trace-ipi-tracepoints' of... · c23190c0
      Linus Torvalds authored
      Merge tag 'trace-ipi-tracepoints' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
      
      Pull IPI tracepoints for ARM from Steven Rostedt:
       "Nicolas Pitre added generic tracepoints for tracing IPIs and updated
        the arm and arm64 architectures.  It required some minor updates to
        the generic tracepoint system, so it had to wait for me to implement
        them"
      
      * tag 'trace-ipi-tracepoints' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        ARM64: add IPI tracepoints
        ARM: add IPI tracepoints
        tracepoint: add generic tracepoint definitions for IPI tracing
        tracing: Do not do anything special with tracepoint_string when tracing is disabled
      c23190c0
    • Linus Torvalds's avatar
      Merge tag 'trace-fixes-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · fc335c1b
      Linus Torvalds authored
      Pull trace file read iterator fixes from Steven Rostedt:
       "This contains a fix for two long standing bugs.  Both of which are
        rarely ever hit, and requires the user to do something that users
        rarely do.  It took a few special test cases to even trigger this bug,
        and one of them was just one test in the process of finishing up as
        another one started.
      
        Both bugs have to do with the ring buffer iterator rb_iter_peek(), but
        one is more indirect than the other.
      
        The fist bug fix is simply an increase in the safety net loop counter.
        The counter makes sure that the rb_iter_peek() only iterates the
        number of times we expect it can, and no more.  Well, there was one
        way it could iterate one more than we expected, and that caused the
        ring buffer to shutdown with a nasty warning.  The fix was simply to
        up that counter by one.
      
        The other bug has to be with rb_iter_reset() (called by
        rb_iter_peek()).  This happens when a user reads both the trace_pipe
        and trace files.  The trace_pipe is a consuming read and does not use
        the ring buffer iterator, but the trace file is not a consuming read
        and does use the ring buffer iterator.  When the trace file is being
        read, if it detects that a consuming read occurred, it resets the
        iterator and starts over.  But the reset code that does this
        (rb_iter_reset()), checks if the reader_page is linked to the ring
        buffer or not, and will look into the ring buffer itself if it is not.
        This is wrong, as it should always try to read the reader page first.
        Not to mention, the code that looked into the ring buffer did it
        wrong, and used the header_page "read" offset to start reading on that
        page.  That offset is bogus for pages in the writable ring buffer, and
        was corrupting the iterator, and it would start returning bogus
        events"
      
      * tag 'trace-fixes-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        ring-buffer: Always reset iterator to reader page
        ring-buffer: Up rb_iter_peek() loop count to 3
      fc335c1b
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · 77e40aae
      Linus Torvalds authored
      Pull namespace updates from Eric Biederman:
       "This is a bunch of small changes built against 3.16-rc6.  The most
        significant change for users is the first patch which makes setns
        drmatically faster by removing unneded rcu handling.
      
        The next chunk of changes are so that "mount -o remount,.." will not
        allow the user namespace root to drop flags on a mount set by the
        system wide root.  Aks this forces read-only mounts to stay read-only,
        no-dev mounts to stay no-dev, no-suid mounts to stay no-suid, no-exec
        mounts to stay no exec and it prevents unprivileged users from messing
        with a mounts atime settings.  I have included my test case as the
        last patch in this series so people performing backports can verify
        this change works correctly.
      
        The next change fixes a bug in NFS that was discovered while auditing
        nsproxy users for the first optimization.  Today you can oops the
        kernel by reading /proc/fs/nfsfs/{servers,volumes} if you are clever
        with pid namespaces.  I rebased and fixed the build of the
        !CONFIG_NFS_FS case yesterday when a build bot caught my typo.  Given
        that no one to my knowledge bases anything on my tree fixing the typo
        in place seems more responsible that requiring a typo-fix to be
        backported as well.
      
        The last change is a small semantic cleanup introducing
        /proc/thread-self and pointing /proc/mounts and /proc/net at it.  This
        prevents several kinds of problemantic corner cases.  It is a
        user-visible change so it has a minute chance of causing regressions
        so the change to /proc/mounts and /proc/net are individual one line
        commits that can be trivially reverted.  Unfortunately I lost and
        could not find the email of the original reporter so he is not
        credited.  From at least one perspective this change to /proc/net is a
        refgression fix to allow pthread /proc/net uses that were broken by
        the introduction of the network namespace"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        proc: Point /proc/mounts at /proc/thread-self/mounts instead of /proc/self/mounts
        proc: Point /proc/net at /proc/thread-self/net instead of /proc/self/net
        proc: Implement /proc/thread-self to point at the directory of the current thread
        proc: Have net show up under /proc/<tgid>/task/<tid>
        NFS: Fix /proc/fs/nfsfs/servers and /proc/fs/nfsfs/volumes
        mnt: Add tests for unprivileged remount cases that have found to be faulty
        mnt: Change the default remount atime from relatime to the existing value
        mnt: Correct permission checks in do_remount
        mnt: Move the test for MNT_LOCK_READONLY from change_mount_flags into do_remount
        mnt: Only change user settable mount flags in remount
        namespaces: Use task_lock and not rcu to protect nsproxy
      77e40aae
  5. 09 Aug, 2014 20 commits