Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1414513 > unrolled thread
| Started by | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| First post | 2016-06-06 01:00 +0200 |
| Last post | 2016-06-07 15:40 +0200 |
| Articles | 20 on this page of 29 — 3 participants |
Back to article view | Back to linux.kernel
[PATCH 4.5 000/128] 4.5.7-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 01:00 +0200
[PATCH 4.5 126/128] Btrfs: fix unexpected return value of fiemap Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 127/128] btrfs: scrub: Set bbio to NULL before calling btrfs_map_block Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 098/128] PM / sleep: Handle failures in device_suspend_late() consistently Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 093/128] ext4: fix check of dqget() return value in ext4_ioctl_setproject() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 110/128] btrfs: allow balancing to dup with multi-device Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 128/128] btrfs: make state preallocation more speculative in __set_extent_bit Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 120/128] btrfs: fix int32 overflow in shrink_delalloc(). Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 095/128] ext4: address UBSAN warning in mb_find_order_for_block() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 102/128] gcov: disable tree-loop-im to reduce stack usage Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 097/128] nfs: avoid race that crashes nfs_init_commit Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 100/128] scripts/package/Makefile: rpmbuild add support of RPMOPTS Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 115/128] btrfs: add check to sysfs handler of label Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 096/128] ext4: silence UBSAN in ext4_mb_init() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 116/128] Btrfs: fix divide error upon chunks stripe_len Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 123/128] btrfs: pass the right error code to the btrfs_std_error Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 113/128] btrfs: fix lock dep warning, move scratch dev out of device_list_mutex and uuid_mutex Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 122/128] btrfs: fix memory leak during RAID 5/6 device replacement Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 109/128] Btrfs: do not create empty block group if we have allocated data Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 114/128] btrfs: add read-only check to sysfs handler of features Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 119/128] btrfs: add write protection to SET_FEATURES ioctl Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 117/128] Btrfs: remove BUG_ON()s in btrfs_map_block Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 111/128] btrfs: fix mixed block count of available space Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 118/128] btrfs: fix lock dep warning move scratch super outside of chunk_mutex Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 125/128] Btrfs: fix empty symlink after creating symlink and fsync parent dir Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 101/128] mm: thp: avoid false positive VM_BUG_ON_PAGE in page_move_anon_rmap() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:40 +0200
[PATCH 4.5 112/128] btrfs: avoid overflowing f_bfree Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-06-06 16:50 +0200
Re: [PATCH 4.5 000/128] 4.5.7-stable review Shuah Khan <shuahkh@osg.samsung.com> - 2016-06-06 19:30 +0200
Re: [PATCH 4.5 000/128] 4.5.7-stable review Guenter Roeck <linux@roeck-us.net> - 2016-06-07 15:40 +0200
Page 1 of 2 [1] 2 Next page →
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-06-06 01:00 +0200 |
| Subject | [PATCH 4.5 000/128] 4.5.7-stable review |
| Message-ID | <rGOIq-4dq-17@gated-at.bofh.it> |
------------------
NOTE: This is the LAST 4.5.y stable kernel to be released, 4.5.y will be
end-of-life with this release. You should have moved to the 4.6.y
series already.
------------------
This is the start of the stable review cycle for the 4.5.7 release.
There are 128 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Tue Jun 7 22:22:57 UTC 2016.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.5.7-rc1.gz
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Linux 4.5.7-rc1
David Sterba <dsterba@suse.com>
btrfs: make state preallocation more speculative in __set_extent_bit
Zhao Lei <zhaolei@cn.fujitsu.com>
btrfs: scrub: Set bbio to NULL before calling btrfs_map_block
Liu Bo <bo.li.liu@oracle.com>
Btrfs: fix unexpected return value of fiemap
Filipe Manana <fdmanana@suse.com>
Btrfs: fix empty symlink after creating symlink and fsync parent dir
Filipe Manana <fdmanana@suse.com>
Btrfs: fix for incorrect directory entries after fsync log replay
Anand Jain <anand.jain@oracle.com>
btrfs: pass the right error code to the btrfs_std_error
Scott Talbert <scott.talbert@hgst.com>
btrfs: fix memory leak during RAID 5/6 device replacement
Vincent Stehlé <vincent.stehle@intel.com>
Btrfs: fix fspath error deallocation
Adam Borowski <kilobyte@angband.pl>
btrfs: fix int32 overflow in shrink_delalloc().
David Sterba <dsterba@suse.cz>
btrfs: add write protection to SET_FEATURES ioctl
Anand Jain <anand.jain@oracle.com>
btrfs: fix lock dep warning move scratch super outside of chunk_mutex
Josef Bacik <jbacik@fb.com>
Btrfs: remove BUG_ON()'s in btrfs_map_block
Liu Bo <bo.li.liu@oracle.com>
Btrfs: fix divide error upon chunk's stripe_len
David Sterba <dsterba@suse.com>
btrfs: add check to sysfs handler of label
David Sterba <dsterba@suse.cz>
btrfs: add read-only check to sysfs handler of features
Anand Jain <anand.jain@oracle.com>
btrfs: fix lock dep warning, move scratch dev out of device_list_mutex and uuid_mutex
Luis de Bethencourt <luisbg@osg.samsung.com>
btrfs: avoid overflowing f_bfree
Luis de Bethencourt <luisbg@osg.samsung.com>
btrfs: fix mixed block count of available space
Austin S. Hemmelgarn <ahferroin7@gmail.com>
btrfs: allow balancing to dup with multi-device
Liu Bo <bo.li.liu@oracle.com>
Btrfs: do not create empty block group if we have allocated data
Luke Dashjr <luke@dashjr.org>
btrfs: bugfix: handle FS_IOC32_{GETFLAGS,SETFLAGS,GETVERSION} in btrfs_ioctl
Dave Chinner <dchinner@redhat.com>
xfs: skip stale inodes in xfs_iflush_cluster
Dave Chinner <dchinner@redhat.com>
xfs: fix inode validity check in xfs_iflush_cluster
Dave Chinner <dchinner@redhat.com>
xfs: xfs_iflush_cluster fails to abort on error
Dave Chinner <dchinner@redhat.com>
xfs: Don't wrap growfs AGFL indexes
Eric Sandeen <sandeen@redhat.com>
xfs: disallow rw remount on fs with unknown ro-compat features
Arnd Bergmann <arnd@arndb.de>
gcov: disable tree-loop-im to reduce stack usage
Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
mm: thp: avoid false positive VM_BUG_ON_PAGE in page_move_anon_rmap()
Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
scripts/package/Makefile: rpmbuild add support of RPMOPTS
Ville Syrjälä <ville.syrjala@linux.intel.com>
dma-debug: avoid spinlock recursion when disabling dma-debug
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
PM / sleep: Handle failures in device_suspend_late() consistently
Weston Andros Adamson <dros@monkey.org>
nfs: avoid race that crashes nfs_init_commit
Nicolai Stange <nicstange@gmail.com>
ext4: silence UBSAN in ext4_mb_init()
Nicolai Stange <nicstange@gmail.com>
ext4: address UBSAN warning in mb_find_order_for_block()
Jan Kara <jack@suse.cz>
ext4: fix oops on corrupted filesystem
Seth Forshee <seth.forshee@canonical.com>
ext4: fix check of dqget() return value in ext4_ioctl_setproject()
Theodore Ts'o <tytso@mit.edu>
ext4: clean up error handling when orphan list is corrupted
Theodore Ts'o <tytso@mit.edu>
ext4: fix hang when processing corrupted orphaned inode list
Philipp Zabel <p.zabel@pengutronix.de>
drm/imx: Match imx-ipuv3-crtc components using device node in platform data
Ville Syrjälä <ville.syrjala@linux.intel.com>
drm/i915: Fix watermarks for VLV/CHV
Ville Syrjälä <ville.syrjala@linux.intel.com>
drm/i915: Don't leave old junk in ilk active watermarks on readout
Daniel Vetter <daniel.vetter@ffwll.ch>
drm/i915/psr: Try to program link training times correctly
Glenn Ruben Bakke <glennrubenbakke@nordicsemi.no>
Bluetooth: 6lowpan: Fix memory corruption of ipv6 destination address
Lyude <cpaul@redhat.com>
drm/atomic: Verify connector->funcs != NULL when clearing states
Lyude <cpaul@redhat.com>
drm/fb_helper: Fix references to dev->mode_config.num_connector
Lyude <cpaul@redhat.com>
drm/i915/fbdev: Fix num_connector references in intel_fb_initial_config()
Mario Kleiner <mario.kleiner.de@gmail.com>
drm/amdgpu: Fix hdmi deep color support.
Alex Deucher <alexander.deucher@amd.com>
drm/amdgpu: use drm_mode_vrefresh() rather than mode->vrefresh
Sinclair Yeh <syeh@vmware.com>
drm/vmwgfx: Fix order of operation
Charmaine Lee <charmainel@vmware.com>
drm/vmwgfx: use vmw_cmd_dx_cid_check for query commands.
Charmaine Lee <charmainel@vmware.com>
drm/vmwgfx: Enable SVGA_3D_CMD_DX_SET_PREDICATION
Itai Handler <itai_handler@hotmail.com>
drm/gma500: Fix possible out of bounds read
Tomáš Trnka <ttrnka@mail.muni.cz>
sunrpc: fix stripping of padded MIC tokens
Juergen Gross <jgross@suse.com>
xen: use same main loop for counting and remapping pages
Ross Lagerwall <ross.lagerwall@citrix.com>
xen/events: Don't move disabled irqs
Gavin Shan <gwshan@linux.vnet.ibm.com>
powerpc/eeh: Restore initial state in eeh_pe_reset_and_recover()
Guilherme G. Piccoli <gpiccoli@linux.vnet.ibm.com>
Revert "powerpc/eeh: Fix crash in eeh_add_device_early() on Cell"
Gavin Shan <gwshan@linux.vnet.ibm.com>
powerpc/eeh: Don't report error in eeh_pe_reset_and_recover()
Hari Bathini <hbathini@linux.vnet.ibm.com>
powerpc/book3s64: Fix branching to OOL handlers in relocatable kernel
Zhao Qiang <qiang.zhao@nxp.com>
QE-UART: add "fsl,t1040-ucc-uart" to of_device_id
Oleg Nesterov <oleg@redhat.com>
wait/ptrace: assume __WALL if the child is traced
Stefan Bader <stefan.bader@canonical.com>
mm: use phys_addr_t for reserve_bootmem_region() arguments
Tiffany Lin <tiffany.lin@mediatek.com>
media: v4l2-compat-ioctl32: fix missing reserved field copy in put_v4l2_create32
Prarit Bhargava <prarit@redhat.com>
PCI: Disable all BAR sizing for devices with non-compliant BARs
Andrew Jeffery <andrew@aj.id.au>
pinctrl: exynos5440: Use off-stack memory for pinctrl_gpio_range
Martin Sperl <kernel@martin.sperl.org>
clk: bcm2835: correctly enable fractional clock support
Martin Sperl <kernel@martin.sperl.org>
clk: bcm2835: divider value has to be 1 or more
Martin Sperl <kernel@martin.sperl.org>
clk: bcm2835: pll_off should only update CM_PLL_ANARST
Vladimir Zapolskiy <vz@mleia.com>
clk: at91: fix check of clk_register() returned value
Eric Anholt <eric@anholt.net>
clk: bcm2835: Fix PLL poweron
Daniel Lezcano <daniel.lezcano@linaro.org>
cpuidle: Fix cpuidle_state_is_coupled() argument in cpuidle_enter()
Dave Gerlach <d-gerlach@ti.com>
cpuidle: Indicate when a device has been unregistered
Ulf Hansson <ulf.hansson@linaro.org>
PM / Runtime: Fix error path in pm_runtime_force_resume()
Ville Syrjälä <ville.syrjala@linux.intel.com>
mfd: intel_soc_pmic_core: Terminate panel control GPIO lookup table correctly
Heikki Krogerus <heikki.krogerus@linux.intel.com>
mfd: intel-lpss: Save register context on suspend
Akshay Bhat <akshay.bhat@timesys.com>
hwmon: (ads7828) Enable internal reference
Javier Martinez Canillas <javier@osg.samsung.com>
regulator: Try to resolve regulators supplies on registration
Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>
aacraid: Fix for KDUMP driver hang
Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>
aacraid: Fix for aac_command_thread hang
Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>
aacraid: Relinquish CPU during timeout wait
Martin K. Petersen <martin.petersen@oracle.com>
Revert "lpfc: Delete unnecessary checks before the function call mempool_destroy"
wang yanqing <udknight@gmail.com>
rtlwifi: pci: use dev_kfree_skb_irq instead of kfree_skb in rtl_pci_reset_trx_ring
wang yanqing <udknight@gmail.com>
rtlwifi: Fix logic error in enter/exit power-save mode
Larry Finger <Larry.Finger@lwfinger.net>
rtlwifi: btcoexist: Implement antenna selection
Larry Finger <Larry.Finger@lwfinger.net>
rtlwifi: rtl8723be: Add antenna select module parameter
Krzysztof Kozlowski <k.kozlowski@samsung.com>
hwrng: exynos - Fix unbalanced PM runtime put on timeout error path
Joseph Salisbury <joseph.salisbury@canonical.com>
ath5k: Change led pin configuration for compaq c700 laptop
Anilkumar Kolli <akolli@qti.qualcomm.com>
ath10k: fix kernel panic, move arvifs list head init before htt init
Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
ath10k: fix rx_channel during hw reconfigure
Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
ath10k: fix firmware assert in monitor mode
Anilkumar Kolli <akolli@qti.qualcomm.com>
ath10k: fix debugfs pktlog_filter write
Vittorio Gambaletta (VittGam) <linux-wireless@vittgam.net>
ath9k: Fix LED polarity for some Mini PCI AR9220 MB92 cards.
Vittorio Gambaletta (VittGam) <linux-wireless@vittgam.net>
ath9k: Add a module parameter to invert LED polarity.
Alexander Kurz <akurz@blala.de>
ARM: dts: imx35: restore existing used clock enumeration
Marek Szyprowski <m.szyprowski@samsung.com>
ARM: dts: exynos: Add interrupt line to MAX8997 PMIC on exynos4210-trats
Florian Vallee <fvallee@eukrea.fr>
ARM: dts: at91: fix typo in sama5d2 PIN_PD24 description
Imre Kaloz <kaloz@openwrt.org>
ARM: mvebu: fix GPIO config on the Linksys boards
Priit Laes <plaes@plaes.org>
ARM: sun7i: dt: Enable dram gate 5 (tve0 clock) for simplefb TV output
Priit Laes <plaes@plaes.org>
ARM: sun4i: dt: Enable dram gate 5 (tve0 clock) for simplefb TV output
Cameron Gutman <aicommander@gmail.com>
Input: xpad - prevent spurious input from wired Xbox 360 controllers
Pavel Rojtberg <rojtberg@gmail.com>
Input: xpad - move pending clear to the correct location
Ricky Liang <jcliang@chromium.org>
Input: uinput - handle compat ioctl for UI_SET_PHYS
Mark Brown <broonie@kernel.org>
ASoC: ak4642: Enable cache usage to fix crashes on resume
Mikulas Patocka <mikulas@twibright.com>
affs: fix remount failure when there are no options changed
Maciej W. Rozycki <macro@imgtec.com>
MIPS: VDSO: Build with `-fno-strict-aliasing'
Harvey Hunt <harvey.hunt@imgtec.com>
MIPS: lib: Mark intrinsics notrace
James Hogan <james.hogan@imgtec.com>
MIPS: Build microMIPS VDSO for microMIPS kernels
James Hogan <james.hogan@imgtec.com>
MIPS: Fix sigreturn via VDSO on microMIPS kernel
Maciej W. Rozycki <macro@imgtec.com>
MIPS: ptrace: Prevent writes to read-only FCSR bits
Maciej W. Rozycki <macro@imgtec.com>
MIPS: ptrace: Fix FP context restoration FCSR regression
Paul Burton <paul.burton@imgtec.com>
MIPS: Disable preemption during prctl(PR_SET_FP_MODE, ...)
Paul Burton <paul.burton@imgtec.com>
MIPS: Prevent "restoration" of MSA context in non-MSA kernels
James Hogan <james.hogan@imgtec.com>
MIPS: Fix MSA ld_*/st_* asm macros to use PTR_ADDU
Paul Burton <paul.burton@imgtec.com>
MIPS: Use copy_s.fmt rather than copy_u.fmt
Huacai Chen <chenhc@lemote.com>
MIPS: Loongson-3: Reserve 32MB for RS780E integrated GPU
Huacai Chen <chenhc@lemote.com>
MIPS: Reserve nosave data for hibernation
Matthias Schiffer <mschiffer@universe-factory.net>
MIPS: ath79: make bootconsole wait for both THRE and TEMT
Huacai Chen <chenhc@lemote.com>
MIPS: Loongson-3: Fix build error after ld-version.sh modification
Paul Burton <paul.burton@imgtec.com>
MIPS: Sync icache & dcache in set_pte_at
Paul Burton <paul.burton@imgtec.com>
MIPS: Handle highmem pages in __update_cache
James Hogan <james.hogan@imgtec.com>
MIPS: Fix watchpoint restoration
James Hogan <james.hogan@imgtec.com>
MIPS: Fix uapi include in exported asm/siginfo.h
James Hogan <james.hogan@imgtec.com>
MIPS: Fix siginfo.h to use strict posix types
James Hogan <james.hogan@imgtec.com>
MIPS: Avoid using unwind_stack() with usermode
James Hogan <james.hogan@imgtec.com>
MIPS: Don't unwind to user mode with EVA
Maciej W. Rozycki <macro@imgtec.com>
MIPS: MSA: Fix a link error on `_init_msa_upper' with older GCC
Paul Burton <paul.burton@imgtec.com>
MIPS: math-emu: Fix jalr emulation when rd == $0
Leonid Yegoshin <Leonid.Yegoshin@imgtec.com>
MIPS64: R6: R2 emulation bugfix
-------------
Diffstat:
.../devicetree/bindings/clock/imx35-clock.txt | 1 +
Makefile | 6 +-
arch/arm/boot/dts/armada-385-linksys.dtsi | 6 +-
arch/arm/boot/dts/armada-xp-linksys-mamba.dts | 4 +-
arch/arm/boot/dts/exynos4210-trats.dts | 2 +
arch/arm/boot/dts/sama5d2-pinfunc.h | 4 +-
arch/arm/boot/dts/sun4i-a10.dtsi | 2 +-
arch/arm/boot/dts/sun7i-a20.dtsi | 5 +-
arch/mips/ath79/early_printk.c | 6 +-
arch/mips/include/asm/asmmacro.h | 40 ++++----
arch/mips/include/asm/cacheflush.h | 6 --
arch/mips/include/asm/msa.h | 13 +++
arch/mips/include/asm/pgtable.h | 26 ++++-
arch/mips/include/asm/switch_to.h | 2 +-
arch/mips/include/asm/watch.h | 10 +-
arch/mips/include/uapi/asm/siginfo.h | 22 ++---
arch/mips/kernel/mips-r2-to-r6-emul.c | 105 +++++++++++----------
arch/mips/kernel/pm.c | 2 +-
arch/mips/kernel/process.c | 6 +-
arch/mips/kernel/ptrace.c | 27 ++++--
arch/mips/kernel/r4k_fpu.S | 10 +-
arch/mips/kernel/setup.c | 3 +
arch/mips/kernel/signal.c | 15 +--
arch/mips/kernel/traps.c | 8 +-
arch/mips/kernel/watch.c | 5 +-
arch/mips/lib/ashldi3.c | 2 +-
arch/mips/lib/ashrdi3.c | 2 +-
arch/mips/lib/bswapdi.c | 2 +-
arch/mips/lib/bswapsi.c | 2 +-
arch/mips/lib/cmpdi2.c | 2 +-
arch/mips/lib/lshrdi3.c | 2 +-
arch/mips/lib/ucmpdi2.c | 2 +-
arch/mips/loongson64/Platform | 2 +-
arch/mips/loongson64/loongson-3/numa.c | 6 +-
arch/mips/math-emu/cp1emu.c | 8 +-
arch/mips/mm/cache.c | 29 +++---
arch/mips/vdso/Makefile | 4 +-
arch/powerpc/kernel/eeh.c | 2 +-
arch/powerpc/kernel/eeh_driver.c | 26 ++++-
arch/powerpc/kernel/exceptions-64s.S | 16 +++-
arch/x86/xen/setup.c | 65 +++++--------
drivers/base/power/main.c | 5 +-
drivers/base/power/runtime.c | 9 +-
drivers/char/hw_random/exynos-rng.c | 10 +-
drivers/clk/at91/clk-h32mx.c | 2 +-
drivers/clk/bcm/clk-bcm2835.c | 58 ++++++++++--
drivers/clk/imx/clk-imx35.c | 4 +-
drivers/cpuidle/cpuidle.c | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 10 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c | 2 +-
drivers/gpu/drm/drm_atomic.c | 2 +-
drivers/gpu/drm/drm_fb_helper.c | 5 +-
drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c | 2 +-
drivers/gpu/drm/i915/intel_atomic.c | 3 +-
drivers/gpu/drm/i915/intel_display.c | 21 +++--
drivers/gpu/drm/i915/intel_drv.h | 2 +-
drivers/gpu/drm/i915/intel_fbdev.c | 6 +-
drivers/gpu/drm/i915/intel_pm.c | 2 +
drivers/gpu/drm/i915/intel_psr.c | 55 +++++++++--
drivers/gpu/drm/imx/imx-drm-core.c | 8 ++
drivers/gpu/drm/imx/ipuv3-crtc.c | 2 +-
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 10 +-
drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 6 +-
drivers/gpu/ipu-v3/ipu-common.c | 5 +-
drivers/hwmon/ads7828.c | 10 ++
drivers/input/joystick/xpad.c | 6 +-
drivers/input/misc/uinput.c | 6 ++
drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 3 +-
drivers/mfd/intel-lpss.c | 19 +++-
drivers/mfd/intel_soc_pmic_core.c | 1 +
drivers/net/wireless/ath/ath10k/core.c | 8 +-
drivers/net/wireless/ath/ath10k/debug.c | 7 +-
drivers/net/wireless/ath/ath10k/mac.c | 13 ++-
drivers/net/wireless/ath/ath5k/led.c | 2 +-
drivers/net/wireless/ath/ath9k/init.c | 7 ++
drivers/net/wireless/ath/ath9k/pci.c | 10 ++
drivers/net/wireless/realtek/rtlwifi/base.c | 4 +-
.../realtek/rtlwifi/btcoexist/halbtc8723b2ant.c | 9 +-
.../realtek/rtlwifi/btcoexist/halbtcoutsrc.c | 27 +++++-
.../realtek/rtlwifi/btcoexist/halbtcoutsrc.h | 2 +-
.../wireless/realtek/rtlwifi/btcoexist/rtl_btc.c | 5 +-
drivers/net/wireless/realtek/rtlwifi/pci.c | 2 +-
.../net/wireless/realtek/rtlwifi/rtl8723be/hw.c | 5 +
.../net/wireless/realtek/rtlwifi/rtl8723be/sw.c | 3 +
drivers/net/wireless/realtek/rtlwifi/wifi.h | 3 +
drivers/pci/probe.c | 6 +-
drivers/pinctrl/samsung/pinctrl-exynos5440.c | 15 +--
drivers/regulator/core.c | 9 ++
drivers/scsi/aacraid/aacraid.h | 1 +
drivers/scsi/aacraid/comminit.c | 24 +++++
drivers/scsi/aacraid/commsup.c | 12 ++-
drivers/scsi/lpfc/lpfc_mem.c | 6 +-
drivers/tty/serial/ucc_uart.c | 3 +
drivers/xen/events/events_base.c | 6 +-
fs/affs/super.c | 5 +-
fs/btrfs/backref.c | 2 +-
fs/btrfs/ctree.h | 1 +
fs/btrfs/extent-tree.c | 2 +-
fs/btrfs/extent_io.c | 14 ++-
fs/btrfs/file.c | 2 +-
fs/btrfs/inode.c | 2 +-
fs/btrfs/ioctl.c | 41 +++++++-
fs/btrfs/scrub.c | 7 +-
fs/btrfs/super.c | 22 ++++-
fs/btrfs/sysfs.c | 6 ++
fs/btrfs/tree-log.c | 15 +--
fs/btrfs/volumes.c | 61 ++++++++----
fs/btrfs/volumes.h | 2 +-
fs/ext4/ialloc.c | 59 ++++++------
fs/ext4/ioctl.c | 2 +-
fs/ext4/mballoc.c | 10 +-
fs/ext4/namei.c | 2 +-
fs/nfs/pnfs_nfs.c | 28 ++++++
fs/nfs/write.c | 4 +
fs/xfs/xfs_fsops.c | 4 +-
fs/xfs/xfs_inode.c | 26 +++--
fs/xfs/xfs_super.c | 10 ++
include/linux/mm.h | 2 +-
include/video/imx-ipu-v3.h | 2 +
kernel/exit.c | 29 ++++--
lib/dma-debug.c | 2 +-
mm/page_alloc.c | 2 +-
mm/rmap.c | 2 +
net/bluetooth/6lowpan.c | 11 +--
net/sunrpc/auth_gss/svcauth_gss.c | 4 +-
scripts/package/Makefile | 4 +-
sound/soc/codecs/ak4642.c | 3 +
127 files changed, 927 insertions(+), 436 deletions(-)
[toc] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-06-06 16:40 +0200 |
| Subject | [PATCH 4.5 126/128] Btrfs: fix unexpected return value of fiemap |
| Message-ID | <rH3R7-68Z-15@gated-at.bofh.it> |
| In reply to | #1414513 |
4.5-stable review patch. If anyone has any objections, please let me know.
------------------
From: Liu Bo <bo.li.liu@oracle.com>
commit 2d324f59f343967a03eeb2690f0ff178304d0687 upstream.
btrfs's fiemap is supposed to return 0 on success and return < 0 on
error. however, ret becomes 1 after looking up the last file extent:
btrfs_lookup_file_extent ->
btrfs_search_slot(..., ins_len=0, cow=0)
and if the offset is beyond EOF, we'll get 'path' pointed to the place
of potentail insertion, and ret == 1.
This may confuse applications using ioctl(FIEL_IOC_FIEMAP).
Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/btrfs/extent_io.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -4385,8 +4385,12 @@ int extent_fiemap(struct inode *inode, s
if (ret < 0) {
btrfs_free_path(path);
return ret;
+ } else {
+ WARN_ON(!ret);
+ if (ret == 1)
+ ret = 0;
}
- WARN_ON(!ret);
+
path->slots[0]--;
btrfs_item_key_to_cpu(path->nodes[0], &found_key, path->slots[0]);
found_type = found_key.type;
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-06-06 16:40 +0200 |
| Subject | [PATCH 4.5 127/128] btrfs: scrub: Set bbio to NULL before calling btrfs_map_block |
| Message-ID | <rH3R7-68Z-17@gated-at.bofh.it> |
| In reply to | #1414513 |
4.5-stable review patch. If anyone has any objections, please let me know.
------------------
From: Zhao Lei <zhaolei@cn.fujitsu.com>
commit f1fee6534dcfbf468a159789aa202db2bce8c200 upstream.
We usually call btrfs_put_bbio() when btrfs_map_block() failed,
btrfs_put_bbio() works right whether bbio is a valid value, or NULL.
But there is a exception, in some case, btrfs_map_block() will return
fail without touching *bbio(keeping its original value), and if bbio
was not initialized yet, invalid memory accessing will happened.
Above case is in scrub_missing_raid56_pages(), and similar case in
scrub_raid56_parity().
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/btrfs/scrub.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/fs/btrfs/scrub.c
+++ b/fs/btrfs/scrub.c
@@ -2179,7 +2179,7 @@ static void scrub_missing_raid56_pages(s
struct btrfs_fs_info *fs_info = sctx->dev_root->fs_info;
u64 length = sblock->page_count * PAGE_SIZE;
u64 logical = sblock->pagev[0]->logical;
- struct btrfs_bio *bbio;
+ struct btrfs_bio *bbio = NULL;
struct bio *bio;
struct btrfs_raid_bio *rbio;
int ret;
@@ -2980,6 +2980,7 @@ again:
extent_len);
mapped_length = extent_len;
+ bbio = NULL;
ret = btrfs_map_block(fs_info, READ, extent_logical,
&mapped_length, &bbio, 0);
if (!ret) {
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-06-06 16:40 +0200 |
| Subject | [PATCH 4.5 098/128] PM / sleep: Handle failures in device_suspend_late() consistently |
| Message-ID | <rH3R7-68Z-5@gated-at.bofh.it> |
| In reply to | #1414513 |
4.5-stable review patch. If anyone has any objections, please let me know.
------------------
From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
commit 3a17fb329da68cb00558721aff876a80bba2fdb9 upstream.
Grygorii Strashko reports:
The PM runtime will be left disabled for the device if its
.suspend_late() callback fails and async suspend is not allowed
for this device. In this case device will not be added in
dpm_late_early_list and dpm_resume_early() will ignore this
device, as result PM runtime will be disabled for it forever
(side effect: after 8 subsequent failures for the same device
the PM runtime will be reenabled due to disable_depth overflow).
To fix this problem, add devices to dpm_late_early_list regardless
of whether or not device_suspend_late() returns errors for them.
That will ensure failures in there to be handled consistently for
all devices regardless of their async suspend/resume status.
Reported-by: Grygorii Strashko <grygorii.strashko@ti.com>
Tested-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/base/power/main.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/drivers/base/power/main.c
+++ b/drivers/base/power/main.c
@@ -1267,14 +1267,15 @@ int dpm_suspend_late(pm_message_t state)
error = device_suspend_late(dev);
mutex_lock(&dpm_list_mtx);
+ if (!list_empty(&dev->power.entry))
+ list_move(&dev->power.entry, &dpm_late_early_list);
+
if (error) {
pm_dev_err(dev, state, " late", error);
dpm_save_failed_dev(dev_name(dev));
put_device(dev);
break;
}
- if (!list_empty(&dev->power.entry))
- list_move(&dev->power.entry, &dpm_late_early_list);
put_device(dev);
if (async_error)
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-06-06 16:40 +0200 |
| Subject | [PATCH 4.5 093/128] ext4: fix check of dqget() return value in ext4_ioctl_setproject() |
| Message-ID | <rH3R8-68Z-21@gated-at.bofh.it> |
| In reply to | #1414513 |
4.5-stable review patch. If anyone has any objections, please let me know.
------------------
From: Seth Forshee <seth.forshee@canonical.com>
commit ff0bc08454917964291f72ee5b8eca66de4bc250 upstream.
A failed call to dqget() returns an ERR_PTR() and not null. Fix
the check in ext4_ioctl_setproject() to handle this correctly.
Fixes: 9b7365fc1c82 ("ext4: add FS_IOC_FSSETXATTR/FS_IOC_FSGETXATTR interface support")
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/ext4/ioctl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/fs/ext4/ioctl.c
+++ b/fs/ext4/ioctl.c
@@ -365,7 +365,7 @@ static int ext4_ioctl_setproject(struct
struct dquot *transfer_to[MAXQUOTAS] = { };
transfer_to[PRJQUOTA] = dqget(sb, make_kqid_projid(kprojid));
- if (transfer_to[PRJQUOTA]) {
+ if (!IS_ERR(transfer_to[PRJQUOTA])) {
err = __dquot_transfer(inode, transfer_to);
dqput(transfer_to[PRJQUOTA]);
if (err)
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-06-06 16:40 +0200 |
| Subject | [PATCH 4.5 110/128] btrfs: allow balancing to dup with multi-device |
| Message-ID | <rH3R7-68Z-7@gated-at.bofh.it> |
| In reply to | #1414513 |
4.5-stable review patch. If anyone has any objections, please let me know. ------------------ From: Austin S. Hemmelgarn <ahferroin7@gmail.com> commit 88be159c905a2b4f6d59afa352bef410afb6af02 upstream. Currently, we don't allow the user to try and rebalance to a dup profile on a multi-device filesystem. In most cases, this is a perfectly sensible restriction as raid1 uses the same amount of space and provides better protection. However, when reshaping a multi-device filesystem down to a single device filesystem, this requires the user to convert metadata and system chunks to single profile before deleting devices, and then convert again to dup, which leaves a period of time where metadata integrity is reduced. This patch removes the single-device-only restriction from converting to dup profile to remove this potential data integrity reduction. Signed-off-by: Austin S. Hemmelgarn <ahferroin7@gmail.com> Signed-off-by: David Sterba <dsterba@suse.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- fs/btrfs/volumes.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -3699,10 +3699,8 @@ int btrfs_balance(struct btrfs_balance_c num_devices--; } btrfs_dev_replace_unlock(&fs_info->dev_replace); - allowed = BTRFS_AVAIL_ALLOC_BIT_SINGLE; - if (num_devices == 1) - allowed |= BTRFS_BLOCK_GROUP_DUP; - else if (num_devices > 1) + allowed = BTRFS_AVAIL_ALLOC_BIT_SINGLE | BTRFS_BLOCK_GROUP_DUP; + if (num_devices > 1) allowed |= (BTRFS_BLOCK_GROUP_RAID0 | BTRFS_BLOCK_GROUP_RAID1); if (num_devices > 2) allowed |= BTRFS_BLOCK_GROUP_RAID5;
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-06-06 16:40 +0200 |
| Subject | [PATCH 4.5 128/128] btrfs: make state preallocation more speculative in __set_extent_bit |
| Message-ID | <rH3R7-68Z-13@gated-at.bofh.it> |
| In reply to | #1414513 |
4.5-stable review patch. If anyone has any objections, please let me know.
------------------
From: David Sterba <dsterba@suse.com>
commit 059f791c6bbaba72dc3c1bd6e2657aacc8552849 upstream.
Similar to __clear_extent_bit, do not fail if the state preallocation
fails as we might not need it. One less BUG_ON.
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/btrfs/extent_io.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -875,8 +875,14 @@ __set_extent_bit(struct extent_io_tree *
bits |= EXTENT_FIRST_DELALLOC;
again:
if (!prealloc && gfpflags_allow_blocking(mask)) {
+ /*
+ * Don't care for allocation failure here because we might end
+ * up not needing the pre-allocated extent state at all, which
+ * is the case if we only have in the tree extent states that
+ * cover our input range and don't cover too any other range.
+ * If we end up needing a new extent state we allocate it later.
+ */
prealloc = alloc_extent_state(mask);
- BUG_ON(!prealloc);
}
spin_lock(&tree->lock);
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-06-06 16:40 +0200 |
| Subject | [PATCH 4.5 120/128] btrfs: fix int32 overflow in shrink_delalloc(). |
| Message-ID | <rH3R8-68Z-25@gated-at.bofh.it> |
| In reply to | #1414513 |
4.5-stable review patch. If anyone has any objections, please let me know. ------------------ From: Adam Borowski <kilobyte@angband.pl> commit 8eb0dfdbda3f56bf7d248ed87fcc383df114ecbb upstream. UBSAN: Undefined behaviour in fs/btrfs/extent-tree.c:4623:21 signed integer overflow: 10808 * 262144 cannot be represented in type 'int [8]' If 8192<=items<16384, we request a writeback of an insane number of pages which is benign (everything will be written). But if items>=16384, the space reservation won't be enough. Signed-off-by: Adam Borowski <kilobyte@angband.pl> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- fs/btrfs/extent-tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -4620,7 +4620,7 @@ static void shrink_delalloc(struct btrfs /* Calc the number of the pages we need flush for space reservation */ items = calc_reclaim_items_nr(root, to_reclaim); - to_reclaim = items * EXTENT_SIZE_PER_ITEM; + to_reclaim = (u64)items * EXTENT_SIZE_PER_ITEM; trans = (struct btrfs_trans_handle *)current->journal_info; block_rsv = &root->fs_info->delalloc_block_rsv;
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-06-06 16:40 +0200 |
| Subject | [PATCH 4.5 095/128] ext4: address UBSAN warning in mb_find_order_for_block() |
| Message-ID | <rH3R8-68Z-29@gated-at.bofh.it> |
| In reply to | #1414513 |
4.5-stable review patch. If anyone has any objections, please let me know.
------------------
From: Nicolai Stange <nicstange@gmail.com>
commit b5cb316cdf3a3f5f6125412b0f6065185240cfdc upstream.
Currently, in mb_find_order_for_block(), there's a loop like the following:
while (order <= e4b->bd_blkbits + 1) {
...
bb += 1 << (e4b->bd_blkbits - order);
}
Note that the updated bb is used in the loop's next iteration only.
However, at the last iteration, that is at order == e4b->bd_blkbits + 1,
the shift count becomes negative (c.f. C99 6.5.7(3)) and UBSAN reports
UBSAN: Undefined behaviour in fs/ext4/mballoc.c:1281:11
shift exponent -1 is negative
[...]
Call Trace:
[<ffffffff818c4d35>] dump_stack+0xbc/0x117
[<ffffffff818c4c79>] ? _atomic_dec_and_lock+0x169/0x169
[<ffffffff819411bb>] ubsan_epilogue+0xd/0x4e
[<ffffffff81941cbc>] __ubsan_handle_shift_out_of_bounds+0x1fb/0x254
[<ffffffff81941ac1>] ? __ubsan_handle_load_invalid_value+0x158/0x158
[<ffffffff816e93a0>] ? ext4_mb_generate_from_pa+0x590/0x590
[<ffffffff816502c8>] ? ext4_read_block_bitmap_nowait+0x598/0xe80
[<ffffffff816e7b7e>] mb_find_order_for_block+0x1ce/0x240
[...]
Unless compilers start to do some fancy transformations (which at least
GCC 6.0.0 doesn't currently do), the issue is of cosmetic nature only: the
such calculated value of bb is never used again.
Silence UBSAN by introducing another variable, bb_incr, holding the next
increment to apply to bb and adjust that one by right shifting it by one
position per loop iteration.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=114701
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=112161
Signed-off-by: Nicolai Stange <nicstange@gmail.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/ext4/mballoc.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -1259,6 +1259,7 @@ static void ext4_mb_unload_buddy(struct
static int mb_find_order_for_block(struct ext4_buddy *e4b, int block)
{
int order = 1;
+ int bb_incr = 1 << (e4b->bd_blkbits - 1);
void *bb;
BUG_ON(e4b->bd_bitmap == e4b->bd_buddy);
@@ -1271,7 +1272,8 @@ static int mb_find_order_for_block(struc
/* this block is part of buddy of order 'order' */
return order;
}
- bb += 1 << (e4b->bd_blkbits - order);
+ bb += bb_incr;
+ bb_incr >>= 1;
order++;
}
return 0;
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-06-06 16:40 +0200 |
| Subject | [PATCH 4.5 102/128] gcov: disable tree-loop-im to reduce stack usage |
| Message-ID | <rH3R7-68Z-19@gated-at.bofh.it> |
| In reply to | #1414513 |
4.5-stable review patch. If anyone has any objections, please let me know. ------------------ From: Arnd Bergmann <arnd@arndb.de> commit c87bf431448b404a6ef5fbabd74c0e3e42157a7f upstream. Enabling CONFIG_GCOV_PROFILE_ALL produces us a lot of warnings like lib/lz4/lz4hc_compress.c: In function 'lz4_compresshcctx': lib/lz4/lz4hc_compress.c:514:1: warning: the frame size of 1504 bytes is larger than 1024 bytes [-Wframe-larger-than=] After some investigation, I found that this behavior started with gcc-4.9, and opened https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69702. A suggested workaround for it is to use the -fno-tree-loop-im flag that turns off one of the optimization stages in gcc, so the code runs a little slower but does not use excessive amounts of stack. We could make this conditional on the gcc version, but I could not find an easy way to do this in Kbuild and the benefit would be fairly small, given that most of the gcc version in production are affected now. I'm marking this for 'stable' backports because it addresses a bug with code generation in gcc that exists in all kernel versions with the affected gcc releases. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com> Signed-off-by: Michal Marek <mmarek@suse.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/Makefile +++ b/Makefile @@ -364,7 +364,7 @@ AFLAGS_MODULE = LDFLAGS_MODULE = CFLAGS_KERNEL = AFLAGS_KERNEL = -CFLAGS_GCOV = -fprofile-arcs -ftest-coverage +CFLAGS_GCOV = -fprofile-arcs -ftest-coverage -fno-tree-loop-im # Use USERINCLUDE when you must reference the UAPI directories only.
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-06-06 16:40 +0200 |
| Subject | [PATCH 4.5 097/128] nfs: avoid race that crashes nfs_init_commit |
| Message-ID | <rH3R7-68Z-1@gated-at.bofh.it> |
| In reply to | #1414513 |
4.5-stable review patch. If anyone has any objections, please let me know.
------------------
From: Weston Andros Adamson <dros@monkey.org>
commit ade8febde0271513360bac44883dbebad44276c3 upstream.
Since the patch "NFS: Allow multiple commit requests in flight per file"
we can run multiple simultaneous commits on the same inode. This
introduced a race over collecting pages to commit that made it possible
to call nfs_init_commit() with an empty list - which causes crashes like
the one below.
The fix is to catch this race and avoid calling nfs_init_commit and
initiate_commit when there is no work to do.
Here is the crash:
[600522.076832] BUG: unable to handle kernel NULL pointer dereference at 0000000000000040
[600522.078475] IP: [<ffffffffa0479e72>] nfs_init_commit+0x22/0x130 [nfs]
[600522.078745] PGD 4272b1067 PUD 4272cb067 PMD 0
[600522.078972] Oops: 0000 [#1] SMP
[600522.079204] Modules linked in: nfsv3 nfs_layout_flexfiles rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache dcdbas ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 xt_conntrack ebtable_nat ebtable_broute bridge stp llc ebtable_filter ebtables ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_security ip6table_raw ip6table_filter ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_security iptable_raw vmw_vsock_vmci_transport vsock bonding ipmi_devintf ipmi_msghandler coretemp crct10dif_pclmul crc32_pclmul ghash_clmulni_intel ppdev vmw_balloon parport_pc parport acpi_cpufreq vmw_vmci i2c_piix4 shpchp nfsd auth_rpcgss nfs_acl lockd grace sunrpc xfs libcrc32c vmwgfx drm_kms_helper ttm drm crc32c_intel serio_raw vmxnet3
[600522.081380] vmw_pvscsi ata_generic pata_acpi
[600522.081809] CPU: 3 PID: 15667 Comm: /usr/bin/python Not tainted 4.1.9-100.pd.88.el7.x86_64 #1
[600522.082281] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 09/30/2014
[600522.082814] task: ffff8800bbbfa780 ti: ffff88042ae84000 task.ti: ffff88042ae84000
[600522.083378] RIP: 0010:[<ffffffffa0479e72>] [<ffffffffa0479e72>] nfs_init_commit+0x22/0x130 [nfs]
[600522.083973] RSP: 0018:ffff88042ae87438 EFLAGS: 00010246
[600522.084571] RAX: 0000000000000000 RBX: ffff880003485e40 RCX: ffff88042ae87588
[600522.085188] RDX: 0000000000000000 RSI: ffff88042ae874b0 RDI: ffff880003485e40
[600522.085756] RBP: ffff88042ae87448 R08: ffff880003486010 R09: ffff88042ae874b0
[600522.086332] R10: 0000000000000000 R11: 0000000000000005 R12: ffff88042ae872d0
[600522.086905] R13: ffff88042ae874b0 R14: ffff880003485e40 R15: ffff88042704c840
[600522.087484] FS: 00007f4728ff2740(0000) GS:ffff88043fd80000(0000) knlGS:0000000000000000
[600522.088070] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[600522.088663] CR2: 0000000000000040 CR3: 000000042b6aa000 CR4: 00000000001406e0
[600522.089327] Stack:
[600522.089926] 0000000000000001 ffff88042ae87588 ffff88042ae874f8 ffffffffa04f09fa
[600522.090549] 0000000000017840 0000000000017840 ffff88042ae87588 ffff8803258d9930
[600522.091169] ffff88042ae87578 ffffffffa0563d80 0000000000000000 ffff88042704c840
[600522.091789] Call Trace:
[600522.092420] [<ffffffffa04f09fa>] pnfs_generic_commit_pagelist+0x1da/0x320 [nfsv4]
[600522.093052] [<ffffffffa0563d80>] ? ff_layout_commit_prepare_v3+0x30/0x30 [nfs_layout_flexfiles]
[600522.093696] [<ffffffffa0562645>] ff_layout_commit_pagelist+0x15/0x20 [nfs_layout_flexfiles]
[600522.094359] [<ffffffffa047bc78>] nfs_generic_commit_list+0xe8/0x120 [nfs]
[600522.095032] [<ffffffffa047bd6a>] nfs_commit_inode+0xba/0x110 [nfs]
[600522.095719] [<ffffffffa046ac54>] nfs_release_page+0x44/0xd0 [nfs]
[600522.096410] [<ffffffff811a8122>] try_to_release_page+0x32/0x50
[600522.097109] [<ffffffff811bd4f1>] shrink_page_list+0x961/0xb30
[600522.097812] [<ffffffff811bdced>] shrink_inactive_list+0x1cd/0x550
[600522.098530] [<ffffffff811bea65>] shrink_lruvec+0x635/0x840
[600522.099250] [<ffffffff811bed60>] shrink_zone+0xf0/0x2f0
[600522.099974] [<ffffffff811bf312>] do_try_to_free_pages+0x192/0x470
[600522.100709] [<ffffffff811bf6ca>] try_to_free_pages+0xda/0x170
[600522.101464] [<ffffffff811b2198>] __alloc_pages_nodemask+0x588/0x970
[600522.102235] [<ffffffff811fbbd5>] alloc_pages_vma+0xb5/0x230
[600522.103000] [<ffffffff813a1589>] ? cpumask_any_but+0x39/0x50
[600522.103774] [<ffffffff811d6115>] wp_page_copy.isra.55+0x95/0x490
[600522.104558] [<ffffffff810e3438>] ? __wake_up+0x48/0x60
[600522.105357] [<ffffffff811d7d3b>] do_wp_page+0xab/0x4f0
[600522.106137] [<ffffffff810a1bbb>] ? release_task+0x36b/0x470
[600522.106902] [<ffffffff8126dbd7>] ? eventfd_ctx_read+0x67/0x1c0
[600522.107659] [<ffffffff811da2a8>] handle_mm_fault+0xc78/0x1900
[600522.108431] [<ffffffff81067ef1>] __do_page_fault+0x181/0x420
[600522.109173] [<ffffffff811446a6>] ? __audit_syscall_exit+0x1e6/0x280
[600522.109893] [<ffffffff810681c0>] do_page_fault+0x30/0x80
[600522.110594] [<ffffffff81024f36>] ? syscall_trace_leave+0xc6/0x120
[600522.111288] [<ffffffff81790a58>] page_fault+0x28/0x30
[600522.111947] Code: 5d c3 0f 1f 80 00 00 00 00 0f 1f 44 00 00 55 4c 8d 87 d0 01 00 00 48 89 e5 53 48 89 fb 48 83 ec 08 4c 8b 0e 49 8b 41 18 4c 39 ce <48> 8b 40 40 4c 8b 50 30 74 24 48 8b 87 d0 01 00 00 48 8b 7e 08
[600522.113343] RIP [<ffffffffa0479e72>] nfs_init_commit+0x22/0x130 [nfs]
[600522.114003] RSP <ffff88042ae87438>
[600522.114636] CR2: 0000000000000040
Fixes: af7cf057 (NFS: Allow multiple commit requests in flight per file)
Signed-off-by: Weston Andros Adamson <dros@primarydata.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/nfs/pnfs_nfs.c | 28 ++++++++++++++++++++++++++++
fs/nfs/write.c | 4 ++++
2 files changed, 32 insertions(+)
--- a/fs/nfs/pnfs_nfs.c
+++ b/fs/nfs/pnfs_nfs.c
@@ -246,6 +246,23 @@ void pnfs_fetch_commit_bucket_list(struc
}
+/* Helper function for pnfs_generic_commit_pagelist to catch an empty
+ * page list. This can happen when two commits race. */
+static bool
+pnfs_generic_commit_cancel_empty_pagelist(struct list_head *pages,
+ struct nfs_commit_data *data,
+ struct nfs_commit_info *cinfo)
+{
+ if (list_empty(pages)) {
+ if (atomic_dec_and_test(&cinfo->mds->rpcs_out))
+ wake_up_atomic_t(&cinfo->mds->rpcs_out);
+ nfs_commitdata_release(data);
+ return true;
+ }
+
+ return false;
+}
+
/* This follows nfs_commit_list pretty closely */
int
pnfs_generic_commit_pagelist(struct inode *inode, struct list_head *mds_pages,
@@ -280,6 +297,11 @@ pnfs_generic_commit_pagelist(struct inod
list_for_each_entry_safe(data, tmp, &list, pages) {
list_del_init(&data->pages);
if (data->ds_commit_index < 0) {
+ /* another commit raced with us */
+ if (pnfs_generic_commit_cancel_empty_pagelist(mds_pages,
+ data, cinfo))
+ continue;
+
nfs_init_commit(data, mds_pages, NULL, cinfo);
nfs_initiate_commit(NFS_CLIENT(inode), data,
NFS_PROTO(data->inode),
@@ -288,6 +310,12 @@ pnfs_generic_commit_pagelist(struct inod
LIST_HEAD(pages);
pnfs_fetch_commit_bucket_list(&pages, data, cinfo);
+
+ /* another commit raced with us */
+ if (pnfs_generic_commit_cancel_empty_pagelist(&pages,
+ data, cinfo))
+ continue;
+
nfs_init_commit(data, &pages, data->lseg, cinfo);
initiate_commit(data, how);
}
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -1709,6 +1709,10 @@ nfs_commit_list(struct inode *inode, str
{
struct nfs_commit_data *data;
+ /* another commit raced with us */
+ if (list_empty(head))
+ return 0;
+
data = nfs_commitdata_alloc();
if (!data)
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-06-06 16:40 +0200 |
| Subject | [PATCH 4.5 100/128] scripts/package/Makefile: rpmbuild add support of RPMOPTS |
| Message-ID | <rH3R7-68Z-3@gated-at.bofh.it> |
| In reply to | #1414513 |
4.5-stable review patch. If anyone has any objections, please let me know.
------------------
From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
commit 65a9f31c5042e5bb50d30ed8ae374044be561054 upstream.
After commit 21a59991ce0c ("scripts/package/Makefile: rpmbuild is needed
for rpm targets"), it is no longer possible to specify RPMOPTS.
For example, we can no longer able to control _topdir using the following
make command.
make RPMOPTS="--define '_topdir /home/xyz/workspace/'" binrpm-pkg
Fixes: 21a59991ce0c ("scripts/package/Makefile: rpmbuild is needed for rpm targets")
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
scripts/package/Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/scripts/package/Makefile
+++ b/scripts/package/Makefile
@@ -52,7 +52,7 @@ rpm-pkg rpm: FORCE
$(call cmd,src_tar,$(KERNELPATH),kernel.spec)
$(CONFIG_SHELL) $(srctree)/scripts/mkversion > $(objtree)/.tmp_version
mv -f $(objtree)/.tmp_version $(objtree)/.version
- rpmbuild --target $(UTS_MACHINE) -ta $(KERNELPATH).tar.gz
+ rpmbuild $(RPMOPTS) --target $(UTS_MACHINE) -ta $(KERNELPATH).tar.gz
rm $(KERNELPATH).tar.gz kernel.spec
# binrpm-pkg
@@ -63,7 +63,7 @@ binrpm-pkg: FORCE
$(CONFIG_SHELL) $(srctree)/scripts/mkversion > $(objtree)/.tmp_version
mv -f $(objtree)/.tmp_version $(objtree)/.version
- rpmbuild --define "_builddir $(objtree)" --target \
+ rpmbuild $(RPMOPTS) --define "_builddir $(objtree)" --target \
$(UTS_MACHINE) -bb $(objtree)/binkernel.spec
rm binkernel.spec
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-06-06 16:40 +0200 |
| Subject | [PATCH 4.5 115/128] btrfs: add check to sysfs handler of label |
| Message-ID | <rH3R8-68Z-33@gated-at.bofh.it> |
| In reply to | #1414513 |
4.5-stable review patch. If anyone has any objections, please let me know. ------------------ From: David Sterba <dsterba@suse.com> commit 66ac9fe7bacf9fa76c472efc7a7aaa590c7bce6a upstream. Add a sanity check for the fs_info as we will dereference it, similar to what the 'store features' handler does. Signed-off-by: David Sterba <dsterba@suse.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- fs/btrfs/sysfs.c | 3 +++ 1 file changed, 3 insertions(+) --- a/fs/btrfs/sysfs.c +++ b/fs/btrfs/sysfs.c @@ -377,6 +377,9 @@ static ssize_t btrfs_label_store(struct struct btrfs_fs_info *fs_info = to_fs_info(kobj); size_t p_len; + if (!fs_info) + return -EPERM; + if (fs_info->sb->s_flags & MS_RDONLY) return -EROFS;
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-06-06 16:40 +0200 |
| Subject | [PATCH 4.5 096/128] ext4: silence UBSAN in ext4_mb_init() |
| Message-ID | <rH3R8-68Z-39@gated-at.bofh.it> |
| In reply to | #1414513 |
4.5-stable review patch. If anyone has any objections, please let me know.
------------------
From: Nicolai Stange <nicstange@gmail.com>
commit 935244cd54b86ca46e69bc6604d2adfb1aec2d42 upstream.
Currently, in ext4_mb_init(), there's a loop like the following:
do {
...
offset += 1 << (sb->s_blocksize_bits - i);
i++;
} while (i <= sb->s_blocksize_bits + 1);
Note that the updated offset is used in the loop's next iteration only.
However, at the last iteration, that is at i == sb->s_blocksize_bits + 1,
the shift count becomes equal to (unsigned)-1 > 31 (c.f. C99 6.5.7(3))
and UBSAN reports
UBSAN: Undefined behaviour in fs/ext4/mballoc.c:2621:15
shift exponent 4294967295 is too large for 32-bit type 'int'
[...]
Call Trace:
[<ffffffff818c4d25>] dump_stack+0xbc/0x117
[<ffffffff818c4c69>] ? _atomic_dec_and_lock+0x169/0x169
[<ffffffff819411ab>] ubsan_epilogue+0xd/0x4e
[<ffffffff81941cac>] __ubsan_handle_shift_out_of_bounds+0x1fb/0x254
[<ffffffff81941ab1>] ? __ubsan_handle_load_invalid_value+0x158/0x158
[<ffffffff814b6dc1>] ? kmem_cache_alloc+0x101/0x390
[<ffffffff816fc13b>] ? ext4_mb_init+0x13b/0xfd0
[<ffffffff814293c7>] ? create_cache+0x57/0x1f0
[<ffffffff8142948a>] ? create_cache+0x11a/0x1f0
[<ffffffff821c2168>] ? mutex_lock+0x38/0x60
[<ffffffff821c23ab>] ? mutex_unlock+0x1b/0x50
[<ffffffff814c26ab>] ? put_online_mems+0x5b/0xc0
[<ffffffff81429677>] ? kmem_cache_create+0x117/0x2c0
[<ffffffff816fcc49>] ext4_mb_init+0xc49/0xfd0
[...]
Observe that the mentioned shift exponent, 4294967295, equals (unsigned)-1.
Unless compilers start to do some fancy transformations (which at least
GCC 6.0.0 doesn't currently do), the issue is of cosmetic nature only: the
such calculated value of offset is never used again.
Silence UBSAN by introducing another variable, offset_incr, holding the
next increment to apply to offset and adjust that one by right shifting it
by one position per loop iteration.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=114701
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=112161
Signed-off-by: Nicolai Stange <nicstange@gmail.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/ext4/mballoc.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -2578,7 +2578,7 @@ int ext4_mb_init(struct super_block *sb)
{
struct ext4_sb_info *sbi = EXT4_SB(sb);
unsigned i, j;
- unsigned offset;
+ unsigned offset, offset_incr;
unsigned max;
int ret;
@@ -2607,11 +2607,13 @@ int ext4_mb_init(struct super_block *sb)
i = 1;
offset = 0;
+ offset_incr = 1 << (sb->s_blocksize_bits - 1);
max = sb->s_blocksize << 2;
do {
sbi->s_mb_offsets[i] = offset;
sbi->s_mb_maxs[i] = max;
- offset += 1 << (sb->s_blocksize_bits - i);
+ offset += offset_incr;
+ offset_incr = offset_incr >> 1;
max = max >> 1;
i++;
} while (i <= sb->s_blocksize_bits + 1);
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-06-06 16:40 +0200 |
| Subject | [PATCH 4.5 116/128] Btrfs: fix divide error upon chunks stripe_len |
| Message-ID | <rH3R8-68Z-31@gated-at.bofh.it> |
| In reply to | #1414513 |
4.5-stable review patch. If anyone has any objections, please let me know.
------------------
From: Liu Bo <bo.li.liu@oracle.com>
commit 3d8da67817606380fdadfa483d4dba5c3a5446c6 upstream.
The struct 'map_lookup' uses type int for @stripe_len, while
btrfs_chunk_stripe_len() can return a u64 value, and it may end up with
@stripe_len being undefined value and it can lead to 'divide error' in
__btrfs_map_block().
This changes 'map_lookup' to use type u64 for stripe_len, also right now
we only use BTRFS_STRIPE_LEN for stripe_len, so this adds a valid checker for
BTRFS_STRIPE_LEN.
Reported-by: Vegard Nossum <vegard.nossum@oracle.com>
Reported-by: Quentin Casasnovas <quentin.casasnovas@oracle.com>
Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Reviewed-by: David Sterba <dsterba@suse.com>
[ folded division fix to scrub_raid56_parity ]
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/btrfs/scrub.c | 2 +-
fs/btrfs/volumes.c | 2 +-
fs/btrfs/volumes.h | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
--- a/fs/btrfs/scrub.c
+++ b/fs/btrfs/scrub.c
@@ -2858,7 +2858,7 @@ static noinline_for_stack int scrub_raid
int extent_mirror_num;
int stop_loop = 0;
- nsectors = map->stripe_len / root->sectorsize;
+ nsectors = div_u64(map->stripe_len, root->sectorsize);
bitmap_len = scrub_calc_parity_bitmap_len(nsectors);
sparity = kzalloc(sizeof(struct scrub_parity) + 2 * bitmap_len,
GFP_NOFS);
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -6249,7 +6249,7 @@ static int read_one_chunk(struct btrfs_r
"invalid chunk length %llu", length);
return -EIO;
}
- if (!is_power_of_2(stripe_len)) {
+ if (!is_power_of_2(stripe_len) || stripe_len != BTRFS_STRIPE_LEN) {
btrfs_err(root->fs_info, "invalid chunk stripe length: %llu",
stripe_len);
return -EIO;
--- a/fs/btrfs/volumes.h
+++ b/fs/btrfs/volumes.h
@@ -347,7 +347,7 @@ struct map_lookup {
u64 type;
int io_align;
int io_width;
- int stripe_len;
+ u64 stripe_len;
int sector_size;
int num_stripes;
int sub_stripes;
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-06-06 16:40 +0200 |
| Subject | [PATCH 4.5 123/128] btrfs: pass the right error code to the btrfs_std_error |
| Message-ID | <rH3R8-68Z-37@gated-at.bofh.it> |
| In reply to | #1414513 |
4.5-stable review patch. If anyone has any objections, please let me know. ------------------ From: Anand Jain <anand.jain@oracle.com> commit ad8403df054c9b5dc3175a26c6179571b9cafa4e upstream. Also drop the newline from the message. Signed-off-by: Anand Jain <anand.jain@oracle.com> Signed-off-by: David Sterba <dsterba@suse.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- fs/btrfs/ioctl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -4849,8 +4849,8 @@ static long btrfs_ioctl_qgroup_assign(st /* update qgroup status and info */ err = btrfs_run_qgroups(trans, root->fs_info); if (err < 0) - btrfs_std_error(root->fs_info, ret, - "failed to update qgroup status and info\n"); + btrfs_std_error(root->fs_info, err, + "failed to update qgroup status and info"); err = btrfs_end_transaction(trans, root); if (err && !ret) ret = err;
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-06-06 16:40 +0200 |
| Subject | [PATCH 4.5 113/128] btrfs: fix lock dep warning, move scratch dev out of device_list_mutex and uuid_mutex |
| Message-ID | <rH3R8-68Z-51@gated-at.bofh.it> |
| In reply to | #1414513 |
4.5-stable review patch. If anyone has any objections, please let me know.
------------------
From: Anand Jain <anand.jain@oracle.com>
commit 779bf3fefa835cb52a07457c8acac6f2f66f2493 upstream.
When the replace target fails, the target device will be taken
out of fs device list, scratch + update_dev_time and freed. However
we could do the scratch + update_dev_time and free part after the
device has been taken out of device list, so that we don't have to
hold the device_list_mutex and uuid_mutex locks.
Reported issue:
[ 5375.718845] ======================================================
[ 5375.718846] [ INFO: possible circular locking dependency detected ]
[ 5375.718849] 4.4.5-scst31x-debug-11+ #40 Not tainted
[ 5375.718849] -------------------------------------------------------
[ 5375.718851] btrfs-health/4662 is trying to acquire lock:
[ 5375.718861] (sb_writers){.+.+.+}, at: [<ffffffff812214f7>] __sb_start_write+0xb7/0xf0
[ 5375.718862]
[ 5375.718862] but task is already holding lock:
[ 5375.718907] (&fs_devs->device_list_mutex){+.+.+.}, at: [<ffffffffa028263c>] btrfs_destroy_dev_replace_tgtdev+0x3c/0x150 [btrfs]
[ 5375.718907]
[ 5375.718907] which lock already depends on the new lock.
[ 5375.718907]
[ 5375.718908]
[ 5375.718908] the existing dependency chain (in reverse order) is:
[ 5375.718911]
[ 5375.718911] -> #3 (&fs_devs->device_list_mutex){+.+.+.}:
[ 5375.718917] [<ffffffff810da4be>] lock_acquire+0xce/0x1e0
[ 5375.718921] [<ffffffff81633949>] mutex_lock_nested+0x69/0x3c0
[ 5375.718940] [<ffffffffa0219bf6>] btrfs_show_devname+0x36/0x210 [btrfs]
[ 5375.718945] [<ffffffff81267079>] show_vfsmnt+0x49/0x150
[ 5375.718948] [<ffffffff81240b07>] m_show+0x17/0x20
[ 5375.718951] [<ffffffff81246868>] seq_read+0x2d8/0x3b0
[ 5375.718955] [<ffffffff8121df28>] __vfs_read+0x28/0xd0
[ 5375.718959] [<ffffffff8121e806>] vfs_read+0x86/0x130
[ 5375.718962] [<ffffffff8121f4c9>] SyS_read+0x49/0xa0
[ 5375.718966] [<ffffffff81637976>] entry_SYSCALL_64_fastpath+0x16/0x7a
[ 5375.718968]
[ 5375.718968] -> #2 (namespace_sem){+++++.}:
[ 5375.718971] [<ffffffff810da4be>] lock_acquire+0xce/0x1e0
[ 5375.718974] [<ffffffff81635199>] down_write+0x49/0x80
[ 5375.718977] [<ffffffff81243593>] lock_mount+0x43/0x1c0
[ 5375.718979] [<ffffffff81243c13>] do_add_mount+0x23/0xd0
[ 5375.718982] [<ffffffff81244afb>] do_mount+0x27b/0xe30
[ 5375.718985] [<ffffffff812459dc>] SyS_mount+0x8c/0xd0
[ 5375.718988] [<ffffffff81637976>] entry_SYSCALL_64_fastpath+0x16/0x7a
[ 5375.718991]
[ 5375.718991] -> #1 (&sb->s_type->i_mutex_key#5){+.+.+.}:
[ 5375.718994] [<ffffffff810da4be>] lock_acquire+0xce/0x1e0
[ 5375.718996] [<ffffffff81633949>] mutex_lock_nested+0x69/0x3c0
[ 5375.719001] [<ffffffff8122d608>] path_openat+0x468/0x1360
[ 5375.719004] [<ffffffff8122f86e>] do_filp_open+0x7e/0xe0
[ 5375.719007] [<ffffffff8121da7b>] do_sys_open+0x12b/0x210
[ 5375.719010] [<ffffffff8121db7e>] SyS_open+0x1e/0x20
[ 5375.719013] [<ffffffff81637976>] entry_SYSCALL_64_fastpath+0x16/0x7a
[ 5375.719015]
[ 5375.719015] -> #0 (sb_writers){.+.+.+}:
[ 5375.719018] [<ffffffff810d97ca>] __lock_acquire+0x17ba/0x1ae0
[ 5375.719021] [<ffffffff810da4be>] lock_acquire+0xce/0x1e0
[ 5375.719026] [<ffffffff810d3bef>] percpu_down_read+0x4f/0xa0
[ 5375.719028] [<ffffffff812214f7>] __sb_start_write+0xb7/0xf0
[ 5375.719031] [<ffffffff81242eb4>] mnt_want_write+0x24/0x50
[ 5375.719035] [<ffffffff8122ded2>] path_openat+0xd32/0x1360
[ 5375.719037] [<ffffffff8122f86e>] do_filp_open+0x7e/0xe0
[ 5375.719040] [<ffffffff8121d8a4>] file_open_name+0xe4/0x130
[ 5375.719043] [<ffffffff8121d923>] filp_open+0x33/0x60
[ 5375.719073] [<ffffffffa02776a6>] update_dev_time+0x16/0x40 [btrfs]
[ 5375.719099] [<ffffffffa02825be>] btrfs_scratch_superblocks+0x4e/0x90 [btrfs]
[ 5375.719123] [<ffffffffa0282665>] btrfs_destroy_dev_replace_tgtdev+0x65/0x150 [btrfs]
[ 5375.719150] [<ffffffffa02c6c80>] btrfs_dev_replace_finishing+0x6b0/0x990 [btrfs]
[ 5375.719175] [<ffffffffa02c729e>] btrfs_dev_replace_start+0x33e/0x540 [btrfs]
[ 5375.719199] [<ffffffffa02c7f58>] btrfs_auto_replace_start+0xf8/0x140 [btrfs]
[ 5375.719222] [<ffffffffa02464e6>] health_kthread+0x246/0x490 [btrfs]
[ 5375.719225] [<ffffffff810a70df>] kthread+0xef/0x110
[ 5375.719229] [<ffffffff81637d2f>] ret_from_fork+0x3f/0x70
[ 5375.719230]
[ 5375.719230] other info that might help us debug this:
[ 5375.719230]
[ 5375.719233] Chain exists of:
[ 5375.719233] sb_writers --> namespace_sem --> &fs_devs->device_list_mutex
[ 5375.719233]
[ 5375.719234] Possible unsafe locking scenario:
[ 5375.719234]
[ 5375.719234] CPU0 CPU1
[ 5375.719235] ---- ----
[ 5375.719236] lock(&fs_devs->device_list_mutex);
[ 5375.719238] lock(namespace_sem);
[ 5375.719239] lock(&fs_devs->device_list_mutex);
[ 5375.719241] lock(sb_writers);
[ 5375.719241]
[ 5375.719241] *** DEADLOCK ***
[ 5375.719241]
[ 5375.719243] 4 locks held by btrfs-health/4662:
[ 5375.719266] #0: (&fs_info->health_mutex){+.+.+.}, at: [<ffffffffa0246303>] health_kthread+0x63/0x490 [btrfs]
[ 5375.719293] #1: (&fs_info->dev_replace.lock_finishing_cancel_unmount){+.+.+.}, at: [<ffffffffa02c6611>] btrfs_dev_replace_finishing+0x41/0x990 [btrfs]
[ 5375.719319] #2: (uuid_mutex){+.+.+.}, at: [<ffffffffa0282620>] btrfs_destroy_dev_replace_tgtdev+0x20/0x150 [btrfs]
[ 5375.719343] #3: (&fs_devs->device_list_mutex){+.+.+.}, at: [<ffffffffa028263c>] btrfs_destroy_dev_replace_tgtdev+0x3c/0x150 [btrfs]
[ 5375.719343]
[ 5375.719343] stack backtrace:
[ 5375.719347] CPU: 2 PID: 4662 Comm: btrfs-health Not tainted 4.4.5-scst31x-debug-11+ #40
[ 5375.719348] Hardware name: Supermicro SYS-6018R-WTRT/X10DRW-iT, BIOS 1.0c 01/07/2015
[ 5375.719352] 0000000000000000 ffff880856f73880 ffffffff813529e3 ffffffff826182a0
[ 5375.719354] ffffffff8260c090 ffff880856f738c0 ffffffff810d667c ffff880856f73930
[ 5375.719357] ffff880861f32b40 ffff880861f32b68 0000000000000003 0000000000000004
[ 5375.719357] Call Trace:
[ 5375.719363] [<ffffffff813529e3>] dump_stack+0x85/0xc2
[ 5375.719366] [<ffffffff810d667c>] print_circular_bug+0x1ec/0x260
[ 5375.719369] [<ffffffff810d97ca>] __lock_acquire+0x17ba/0x1ae0
[ 5375.719373] [<ffffffff810f606d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[ 5375.719376] [<ffffffff810da4be>] lock_acquire+0xce/0x1e0
[ 5375.719378] [<ffffffff812214f7>] ? __sb_start_write+0xb7/0xf0
[ 5375.719383] [<ffffffff810d3bef>] percpu_down_read+0x4f/0xa0
[ 5375.719385] [<ffffffff812214f7>] ? __sb_start_write+0xb7/0xf0
[ 5375.719387] [<ffffffff812214f7>] __sb_start_write+0xb7/0xf0
[ 5375.719389] [<ffffffff81242eb4>] mnt_want_write+0x24/0x50
[ 5375.719393] [<ffffffff8122ded2>] path_openat+0xd32/0x1360
[ 5375.719415] [<ffffffffa02462a0>] ? btrfs_congested_fn+0x180/0x180 [btrfs]
[ 5375.719418] [<ffffffff810f606d>] ? debug_lockdep_rcu_enabled+0x1d/0x20
[ 5375.719420] [<ffffffff8122f86e>] do_filp_open+0x7e/0xe0
[ 5375.719423] [<ffffffff810f615d>] ? rcu_read_lock_sched_held+0x6d/0x80
[ 5375.719426] [<ffffffff81201a9b>] ? kmem_cache_alloc+0x26b/0x5d0
[ 5375.719430] [<ffffffff8122e7d4>] ? getname_kernel+0x34/0x120
[ 5375.719433] [<ffffffff8121d8a4>] file_open_name+0xe4/0x130
[ 5375.719436] [<ffffffff8121d923>] filp_open+0x33/0x60
[ 5375.719462] [<ffffffffa02776a6>] update_dev_time+0x16/0x40 [btrfs]
[ 5375.719485] [<ffffffffa02825be>] btrfs_scratch_superblocks+0x4e/0x90 [btrfs]
[ 5375.719506] [<ffffffffa0282665>] btrfs_destroy_dev_replace_tgtdev+0x65/0x150 [btrfs]
[ 5375.719530] [<ffffffffa02c6c80>] btrfs_dev_replace_finishing+0x6b0/0x990 [btrfs]
[ 5375.719554] [<ffffffffa02c6b23>] ? btrfs_dev_replace_finishing+0x553/0x990 [btrfs]
[ 5375.719576] [<ffffffffa02c729e>] btrfs_dev_replace_start+0x33e/0x540 [btrfs]
[ 5375.719598] [<ffffffffa02c7f58>] btrfs_auto_replace_start+0xf8/0x140 [btrfs]
[ 5375.719621] [<ffffffffa02464e6>] health_kthread+0x246/0x490 [btrfs]
[ 5375.719641] [<ffffffffa02463d8>] ? health_kthread+0x138/0x490 [btrfs]
[ 5375.719661] [<ffffffffa02462a0>] ? btrfs_congested_fn+0x180/0x180 [btrfs]
[ 5375.719663] [<ffffffff810a70df>] kthread+0xef/0x110
[ 5375.719666] [<ffffffff810a6ff0>] ? kthread_create_on_node+0x200/0x200
[ 5375.719669] [<ffffffff81637d2f>] ret_from_fork+0x3f/0x70
[ 5375.719672] [<ffffffff810a6ff0>] ? kthread_create_on_node+0x200/0x200
[ 5375.719697] ------------[ cut here ]------------
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reported-by: Yauhen Kharuzhy <yauhen.kharuzhy@zavadatar.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/btrfs/volumes.c | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -2023,10 +2023,9 @@ void btrfs_destroy_dev_replace_tgtdev(st
btrfs_sysfs_rm_device_link(fs_info->fs_devices, tgtdev);
- if (tgtdev->bdev) {
- btrfs_scratch_superblocks(tgtdev->bdev, tgtdev->name->str);
+ if (tgtdev->bdev)
fs_info->fs_devices->open_devices--;
- }
+
fs_info->fs_devices->num_devices--;
next_device = list_entry(fs_info->fs_devices->devices.next,
@@ -2037,10 +2036,18 @@ void btrfs_destroy_dev_replace_tgtdev(st
fs_info->fs_devices->latest_bdev = next_device->bdev;
list_del_rcu(&tgtdev->dev_list);
- call_rcu(&tgtdev->rcu, free_device);
-
mutex_unlock(&fs_info->fs_devices->device_list_mutex);
mutex_unlock(&uuid_mutex);
+
+ /*
+ * The update_dev_time() with in btrfs_scratch_superblocks()
+ * may lead to a call to btrfs_show_devname() which will try
+ * to hold device_list_mutex. And here this device
+ * is already out of device list, so we don't have to hold
+ * the device_list_mutex lock.
+ */
+ btrfs_scratch_superblocks(tgtdev->bdev, tgtdev->name->str);
+ call_rcu(&tgtdev->rcu, free_device);
}
static int btrfs_find_device_by_path(struct btrfs_root *root, char *device_path,
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-06-06 16:40 +0200 |
| Subject | [PATCH 4.5 122/128] btrfs: fix memory leak during RAID 5/6 device replacement |
| Message-ID | <rH3R8-68Z-35@gated-at.bofh.it> |
| In reply to | #1414513 |
4.5-stable review patch. If anyone has any objections, please let me know. ------------------ From: Scott Talbert <scott.talbert@hgst.com> commit 4673272f43ae790ab9ec04e38a7542f82bb8f020 upstream. A 'struct bio' is allocated in scrub_missing_raid56_pages(), but it was never freed anywhere. Signed-off-by: Scott Talbert <scott.talbert@hgst.com> Signed-off-by: David Sterba <dsterba@suse.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- fs/btrfs/scrub.c | 2 ++ 1 file changed, 2 insertions(+) --- a/fs/btrfs/scrub.c +++ b/fs/btrfs/scrub.c @@ -2125,6 +2125,8 @@ static void scrub_missing_raid56_end_io( if (bio->bi_error) sblock->no_io_error_seen = 0; + bio_put(bio); + btrfs_queue_work(fs_info->scrub_workers, &sblock->work); }
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-06-06 16:40 +0200 |
| Subject | [PATCH 4.5 109/128] Btrfs: do not create empty block group if we have allocated data |
| Message-ID | <rH3R8-68Z-41@gated-at.bofh.it> |
| In reply to | #1414513 |
4.5-stable review patch. If anyone has any objections, please let me know.
------------------
From: Liu Bo <bo.li.liu@oracle.com>
commit cf25ce518e8ef9d59b292e51193bed2b023a32da upstream.
Now we force to create empty block group to keep data profile alive,
however, in the below example, we eventually get an empty block group
while we're trying to get more space for other types (metadata/system),
- Before,
block group "A": size=2G, used=1.2G
block group "B": size=2G, used=512M
- After "btrfs balance start -dusage=50 mount_point",
block group "A": size=2G, used=(1.2+0.5)G
block group "C": size=2G, used=0
Since there is no data in block group C, it won't be deleted
automatically and we have to get the unused 2G until the next mount.
Balance itself just moves data and doesn't remove data, so it's safe
to not create such a empty block group if we already have data
allocated in other block groups.
Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/btrfs/volumes.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -3401,6 +3401,7 @@ static int __btrfs_balance(struct btrfs_
u32 count_meta = 0;
u32 count_sys = 0;
int chunk_reserved = 0;
+ u64 bytes_used = 0;
/* step one make some room on all the devices */
devices = &fs_info->fs_devices->devices;
@@ -3539,7 +3540,13 @@ again:
goto loop;
}
- if ((chunk_type & BTRFS_BLOCK_GROUP_DATA) && !chunk_reserved) {
+ ASSERT(fs_info->data_sinfo);
+ spin_lock(&fs_info->data_sinfo->lock);
+ bytes_used = fs_info->data_sinfo->bytes_used;
+ spin_unlock(&fs_info->data_sinfo->lock);
+
+ if ((chunk_type & BTRFS_BLOCK_GROUP_DATA) &&
+ !chunk_reserved && !bytes_used) {
trans = btrfs_start_transaction(chunk_root, 0);
if (IS_ERR(trans)) {
mutex_unlock(&fs_info->delete_unused_bgs_mutex);
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-06-06 16:40 +0200 |
| Subject | [PATCH 4.5 114/128] btrfs: add read-only check to sysfs handler of features |
| Message-ID | <rH3R9-68Z-57@gated-at.bofh.it> |
| In reply to | #1414513 |
4.5-stable review patch. If anyone has any objections, please let me know. ------------------ From: David Sterba <dsterba@suse.cz> commit ee6111386a1b304f8bf589d36810d53e3b27ee20 upstream. We don't want to trigger the change on a read-only filesystem, similar to what the label handler does. Signed-off-by: David Sterba <dsterba@suse.cz> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- fs/btrfs/sysfs.c | 3 +++ 1 file changed, 3 insertions(+) --- a/fs/btrfs/sysfs.c +++ b/fs/btrfs/sysfs.c @@ -120,6 +120,9 @@ static ssize_t btrfs_feature_attr_store( if (!fs_info) return -EPERM; + if (fs_info->sb->s_flags & MS_RDONLY) + return -EROFS; + ret = kstrtoul(skip_spaces(buf), 0, &val); if (ret) return ret;
[toc] | [prev] | [next] | [standalone]
Page 1 of 2 [1] 2 Next page →
Back to top | Article view | linux.kernel
csiph-web