stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Filipe Manana <fdmanana@suse.com>,
	Josef Bacik <josef@toxicpanda.com>,
	David Sterba <dsterba@suse.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: [PATCH 5.4 151/178] btrfs: fix data block group relocation failure due to concurrent scrub
Date: Mon, 29 Jun 2020 11:24:56 -0400	[thread overview]
Message-ID: <20200629152523.2494198-152-sashal@kernel.org> (raw)
In-Reply-To: <20200629152523.2494198-1-sashal@kernel.org>

From: Filipe Manana <fdmanana@suse.com>

commit 432cd2a10f1c10cead91fe706ff5dc52f06d642a upstream.

When running relocation of a data block group while scrub is running in
parallel, it is possible that the relocation will fail and abort the
current transaction with an -EINVAL error:

   [134243.988595] BTRFS info (device sdc): found 14 extents, stage: move data extents
   [134243.999871] ------------[ cut here ]------------
   [134244.000741] BTRFS: Transaction aborted (error -22)
   [134244.001692] WARNING: CPU: 0 PID: 26954 at fs/btrfs/ctree.c:1071 __btrfs_cow_block+0x6a7/0x790 [btrfs]
   [134244.003380] Modules linked in: btrfs blake2b_generic xor raid6_pq (...)
   [134244.012577] CPU: 0 PID: 26954 Comm: btrfs Tainted: G        W         5.6.0-rc7-btrfs-next-58 #5
   [134244.014162] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.org 04/01/2014
   [134244.016184] RIP: 0010:__btrfs_cow_block+0x6a7/0x790 [btrfs]
   [134244.017151] Code: 48 c7 c7 (...)
   [134244.020549] RSP: 0018:ffffa41607863888 EFLAGS: 00010286
   [134244.021515] RAX: 0000000000000000 RBX: ffff9614bdfe09c8 RCX: 0000000000000000
   [134244.022822] RDX: 0000000000000001 RSI: ffffffffb3d63980 RDI: 0000000000000001
   [134244.024124] RBP: ffff961589e8c000 R08: 0000000000000000 R09: 0000000000000001
   [134244.025424] R10: ffffffffc0ae5955 R11: 0000000000000000 R12: ffff9614bd530d08
   [134244.026725] R13: ffff9614ced41b88 R14: ffff9614bdfe2a48 R15: 0000000000000000
   [134244.028024] FS:  00007f29b63c08c0(0000) GS:ffff9615ba600000(0000) knlGS:0000000000000000
   [134244.029491] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
   [134244.030560] CR2: 00007f4eb339b000 CR3: 0000000130d6e006 CR4: 00000000003606f0
   [134244.031997] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
   [134244.033153] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
   [134244.034484] Call Trace:
   [134244.034984]  btrfs_cow_block+0x12b/0x2b0 [btrfs]
   [134244.035859]  do_relocation+0x30b/0x790 [btrfs]
   [134244.036681]  ? do_raw_spin_unlock+0x49/0xc0
   [134244.037460]  ? _raw_spin_unlock+0x29/0x40
   [134244.038235]  relocate_tree_blocks+0x37b/0x730 [btrfs]
   [134244.039245]  relocate_block_group+0x388/0x770 [btrfs]
   [134244.040228]  btrfs_relocate_block_group+0x161/0x2e0 [btrfs]
   [134244.041323]  btrfs_relocate_chunk+0x36/0x110 [btrfs]
   [134244.041345]  btrfs_balance+0xc06/0x1860 [btrfs]
   [134244.043382]  ? btrfs_ioctl_balance+0x27c/0x310 [btrfs]
   [134244.045586]  btrfs_ioctl_balance+0x1ed/0x310 [btrfs]
   [134244.045611]  btrfs_ioctl+0x1880/0x3760 [btrfs]
   [134244.049043]  ? do_raw_spin_unlock+0x49/0xc0
   [134244.049838]  ? _raw_spin_unlock+0x29/0x40
   [134244.050587]  ? __handle_mm_fault+0x11b3/0x14b0
   [134244.051417]  ? ksys_ioctl+0x92/0xb0
   [134244.052070]  ksys_ioctl+0x92/0xb0
   [134244.052701]  ? trace_hardirqs_off_thunk+0x1a/0x1c
   [134244.053511]  __x64_sys_ioctl+0x16/0x20
   [134244.054206]  do_syscall_64+0x5c/0x280
   [134244.054891]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
   [134244.055819] RIP: 0033:0x7f29b51c9dd7
   [134244.056491] Code: 00 00 00 (...)
   [134244.059767] RSP: 002b:00007ffcccc1dd08 EFLAGS: 00000202 ORIG_RAX: 0000000000000010
   [134244.061168] RAX: ffffffffffffffda RBX: 0000000000000001 RCX: 00007f29b51c9dd7
   [134244.062474] RDX: 00007ffcccc1dda0 RSI: 00000000c4009420 RDI: 0000000000000003
   [134244.063771] RBP: 0000000000000003 R08: 00005565cea4b000 R09: 0000000000000000
   [134244.065032] R10: 0000000000000541 R11: 0000000000000202 R12: 00007ffcccc2060a
   [134244.066327] R13: 00007ffcccc1dda0 R14: 0000000000000002 R15: 00007ffcccc1dec0
   [134244.067626] irq event stamp: 0
   [134244.068202] hardirqs last  enabled at (0): [<0000000000000000>] 0x0
   [134244.069351] hardirqs last disabled at (0): [<ffffffffb2abdedf>] copy_process+0x74f/0x2020
   [134244.070909] softirqs last  enabled at (0): [<ffffffffb2abdedf>] copy_process+0x74f/0x2020
   [134244.072392] softirqs last disabled at (0): [<0000000000000000>] 0x0
   [134244.073432] ---[ end trace bd7c03622e0b0a99 ]---

The -EINVAL error comes from the following chain of function calls:

  __btrfs_cow_block() <-- aborts the transaction
    btrfs_reloc_cow_block()
      replace_file_extents()
        get_new_location() <-- returns -EINVAL

When relocating a data block group, for each allocated extent of the block
group, we preallocate another extent (at prealloc_file_extent_cluster()),
associated with the data relocation inode, and then dirty all its pages.
These preallocated extents have, and must have, the same size that extents
from the data block group being relocated have.

Later before we start the relocation stage that updates pointers (bytenr
field of file extent items) to point to the the new extents, we trigger
writeback for the data relocation inode. The expectation is that writeback
will write the pages to the previously preallocated extents, that it
follows the NOCOW path. That is generally the case, however, if a scrub
is running it may have turned the block group that contains those extents
into RO mode, in which case writeback falls back to the COW path.

However in the COW path instead of allocating exactly one extent with the
expected size, the allocator may end up allocating several smaller extents
due to free space fragmentation - because we tell it at cow_file_range()
that the minimum allocation size can match the filesystem's sector size.
This later breaks the relocation's expectation that an extent associated
to a file extent item in the data relocation inode has the same size as
the respective extent pointed by a file extent item in another tree - in
this case the extent to which the relocation inode poins to is smaller,
causing relocation.c:get_new_location() to return -EINVAL.

For example, if we are relocating a data block group X that has a logical
address of X and the block group has an extent allocated at the logical
address X + 128KiB with a size of 64KiB:

1) At prealloc_file_extent_cluster() we allocate an extent for the data
   relocation inode with a size of 64KiB and associate it to the file
   offset 128KiB (X + 128KiB - X) of the data relocation inode. This
   preallocated extent was allocated at block group Z;

2) A scrub running in parallel turns block group Z into RO mode and
   starts scrubing its extents;

3) Relocation triggers writeback for the data relocation inode;

4) When running delalloc (btrfs_run_delalloc_range()), we try first the
   NOCOW path because the data relocation inode has BTRFS_INODE_PREALLOC
   set in its flags. However, because block group Z is in RO mode, the
   NOCOW path (run_delalloc_nocow()) falls back into the COW path, by
   calling cow_file_range();

5) At cow_file_range(), in the first iteration of the while loop we call
   btrfs_reserve_extent() to allocate a 64KiB extent and pass it a minimum
   allocation size of 4KiB (fs_info->sectorsize). Due to free space
   fragmentation, btrfs_reserve_extent() ends up allocating two extents
   of 32KiB each, each one on a different iteration of that while loop;

6) Writeback of the data relocation inode completes;

7) Relocation proceeds and ends up at relocation.c:replace_file_extents(),
   with a leaf which has a file extent item that points to the data extent
   from block group X, that has a logical address (bytenr) of X + 128KiB
   and a size of 64KiB. Then it calls get_new_location(), which does a
   lookup in the data relocation tree for a file extent item starting at
   offset 128KiB (X + 128KiB - X) and belonging to the data relocation
   inode. It finds a corresponding file extent item, however that item
   points to an extent that has a size of 32KiB, which doesn't match the
   expected size of 64KiB, resuling in -EINVAL being returned from this
   function and propagated up to __btrfs_cow_block(), which aborts the
   current transaction.

To fix this make sure that at cow_file_range() when we call the allocator
we pass it a minimum allocation size corresponding the desired extent size
if the inode belongs to the data relocation tree, otherwise pass it the
filesystem's sector size as the minimum allocation size.

CC: stable@vger.kernel.org # 4.4+
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/btrfs/inode.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 48c8e5a4c9120..0984601418e50 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -975,6 +975,7 @@ static noinline int cow_file_range(struct inode *inode,
 	u64 num_bytes;
 	unsigned long ram_size;
 	u64 cur_alloc_size = 0;
+	u64 min_alloc_size;
 	u64 blocksize = fs_info->sectorsize;
 	struct btrfs_key ins;
 	struct extent_map *em;
@@ -1025,10 +1026,26 @@ static noinline int cow_file_range(struct inode *inode,
 	btrfs_drop_extent_cache(BTRFS_I(inode), start,
 			start + num_bytes - 1, 0);
 
+	/*
+	 * Relocation relies on the relocated extents to have exactly the same
+	 * size as the original extents. Normally writeback for relocation data
+	 * extents follows a NOCOW path because relocation preallocates the
+	 * extents. However, due to an operation such as scrub turning a block
+	 * group to RO mode, it may fallback to COW mode, so we must make sure
+	 * an extent allocated during COW has exactly the requested size and can
+	 * not be split into smaller extents, otherwise relocation breaks and
+	 * fails during the stage where it updates the bytenr of file extent
+	 * items.
+	 */
+	if (root->root_key.objectid == BTRFS_DATA_RELOC_TREE_OBJECTID)
+		min_alloc_size = num_bytes;
+	else
+		min_alloc_size = fs_info->sectorsize;
+
 	while (num_bytes > 0) {
 		cur_alloc_size = num_bytes;
 		ret = btrfs_reserve_extent(root, cur_alloc_size, cur_alloc_size,
-					   fs_info->sectorsize, 0, alloc_hint,
+					   min_alloc_size, 0, alloc_hint,
 					   &ins, 1, 1);
 		if (ret < 0)
 			goto out_unlock;
-- 
2.25.1


  parent reply	other threads:[~2020-06-29 19:58 UTC|newest]

Thread overview: 182+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-29 15:22 [PATCH 5.4 000/178] 5.4.50-rc1 review Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 001/178] block/bio-integrity: don't free 'buf' if bio_integrity_add_page() failed Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 002/178] enetc: Fix tx rings bitmap iteration range, irq handling Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 003/178] geneve: allow changing DF behavior after creation Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 004/178] ibmveth: Fix max MTU limit Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 005/178] mld: fix memory leak in ipv6_mc_destroy_dev() Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 006/178] mvpp2: ethtool rxtx stats fix Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 007/178] net: bridge: enfore alignment for ethernet address Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 008/178] net: core: reduce recursion limit value Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 009/178] net: Do not clear the sock TX queue in sk_set_socket() Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 010/178] net: fix memleak in register_netdevice() Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 011/178] net: Fix the arp error in some cases Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 012/178] net: increment xmit_recursion level in dev_direct_xmit() Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 013/178] net: usb: ax88179_178a: fix packet alignment padding Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 014/178] openvswitch: take into account de-fragmentation/gso_size in execute_check_pkt_len Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 015/178] rocker: fix incorrect error handling in dma_rings_init Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 016/178] rxrpc: Fix notification call on completion of discarded calls Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 017/178] sctp: Don't advertise IPv4 addresses if ipv6only is set on the socket Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 018/178] tcp: don't ignore ECN CWR on pure ACK Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 019/178] tcp: grow window for OOO packets only for SACK flows Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 020/178] tg3: driver sleeps indefinitely when EEH errors exceed eeh_max_freezes Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 021/178] ip6_gre: fix use-after-free in ip6gre_tunnel_lookup() Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 022/178] net: phy: Check harder for errors in get_phy_id() Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 023/178] ip_tunnel: fix use-after-free in ip_tunnel_lookup() Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 024/178] sch_cake: don't try to reallocate or unshare skb unconditionally Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 025/178] sch_cake: don't call diffserv parsing code when it is not needed Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 026/178] sch_cake: fix a few style nits Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 027/178] tcp_cubic: fix spurious HYSTART_DELAY exit upon drop in min RTT Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 028/178] Revert "i2c: tegra: Fix suspending in active runtime PM state" Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 029/178] btrfs: fix a block group ref counter leak after failure to remove block group Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 030/178] net: sched: export __netdev_watchdog_up() Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 031/178] fix a braino in "sparc32: fix register window handling in genregs32_[gs]et()" Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 032/178] ALSA: usb-audio: Fix potential use-after-free of streams Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 033/178] binder: fix null deref of proc->context Sasha Levin
2020-06-29 15:22 ` [PATCH 5.4 034/178] USB: ohci-sm501: Add missed iounmap() in remove Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 035/178] usb: dwc2: Postponed gadget registration to the udc class driver Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 036/178] usb: add USB_QUIRK_DELAY_INIT for Logitech C922 Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 037/178] USB: ehci: reopen solution for Synopsys HC bug Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 038/178] usb: host: xhci-mtk: avoid runtime suspend when removing hcd Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 039/178] xhci: Poll for U0 after disabling USB2 LPM Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 040/178] usb: host: ehci-exynos: Fix error check in exynos_ehci_probe() Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 041/178] usb: typec: tcpci_rt1711h: avoid screaming irq causing boot hangs Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 042/178] ALSA: usb-audio: Add implicit feedback quirk for SSL2+ Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 043/178] ALSA: usb-audio: add quirk for Denon DCD-1500RE Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 044/178] ALSA: usb-audio: add quirk for Samsung USBC Headset (AKG) Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 045/178] ALSA: usb-audio: Fix OOB access of mixer element list Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 046/178] usb: cdns3: trace: using correct dir value Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 047/178] usb: cdns3: ep0: fix the test mode set incorrectly Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 048/178] usb: cdns3: ep0: add spinlock for cdns3_check_new_setup Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 049/178] scsi: qla2xxx: Keep initiator ports after RSCN Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 050/178] scsi: zfcp: Fix panic on ERP timeout for previously dismissed ERP action Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 051/178] cifs: Fix cached_fid refcnt leak in open_shroot Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 052/178] cifs/smb3: Fix data inconsistent when punch hole Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 053/178] cifs/smb3: Fix data inconsistent when zero file range Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 054/178] xhci: Fix incorrect EP_STATE_MASK Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 055/178] xhci: Fix enumeration issue when setting max packet size for FS devices Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 056/178] xhci: Return if xHCI doesn't support LPM Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 057/178] cdc-acm: Add DISABLE_ECHO quirk for Microchip/SMSC chip Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 058/178] loop: replace kill_bdev with invalidate_bdev Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 059/178] IB/mad: Fix use after free when destroying MAD agent Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 060/178] IB/hfi1: Fix module use count flaw due to leftover module put calls Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 061/178] bus: ti-sysc: Flush posted write on enable and disable Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 062/178] bus: ti-sysc: Ignore clockactivity unless specified as a quirk Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 063/178] ARM: OMAP2+: Fix legacy mode dss_reset Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 064/178] xfrm: Fix double ESP trailer insertion in IPsec crypto offload Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 065/178] ASoC: q6asm: handle EOS correctly Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 066/178] efi/tpm: Verify event log header before parsing Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 067/178] efi/esrt: Fix reference count leak in esre_create_sysfs_entry Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 068/178] ASoc: q6afe: add support to get port direction Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 069/178] ASoC: qcom: common: set correct directions for dailinks Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 070/178] regualtor: pfuze100: correct sw1a/sw2 on pfuze3000 Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 071/178] RDMA/siw: Fix pointer-to-int-cast warning in siw_rx_pbl() Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 072/178] ASoC: fsl_ssi: Fix bclk calculation for mono channel Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 073/178] samples/bpf: xdp_redirect_cpu: Set MAX_CPUS according to NR_CPUS Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 074/178] bpf, xdp, samples: Fix null pointer dereference in *_user code Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 075/178] ARM: dts: am335x-pocketbeagle: Fix mmc0 Write Protect Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 076/178] ARM: dts: Fix duovero smsc interrupt for suspend Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 077/178] x86/resctrl: Fix a NULL vs IS_ERR() static checker warning in rdt_cdp_peer_get() Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 078/178] regmap: Fix memory leak from regmap_register_patch Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 079/178] devmap: Use bpf_map_area_alloc() for allocating hash buckets Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 080/178] bpf: Don't return EINVAL from {get,set}sockopt when optlen > PAGE_SIZE Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 081/178] ARM: dts: NSP: Correct FA2 mailbox node Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 082/178] rxrpc: Fix handling of rwind from an ACK packet Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 083/178] RDMA/rvt: Fix potential memory leak caused by rvt_alloc_rq Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 084/178] RDMA/qedr: Fix KASAN: use-after-free in ucma_event_handler+0x532 Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 085/178] RDMA/cma: Protect bind_list and listen_list while finding matching cm id Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 086/178] ASoC: rockchip: Fix a reference count leak Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 087/178] s390/qeth: fix error handling for isolation mode cmds Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 088/178] RDMA/mad: Fix possible memory leak in ib_mad_post_receive_mads() Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 089/178] selftests/net: report etf errors correctly Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 090/178] iommu/vt-d: Enable PCI ACS for platform opt in hint Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 091/178] iommu/vt-d: Update scalable mode paging structure coherency Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 092/178] net: qed: fix left elements count calculation Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 093/178] net: qed: fix async event callbacks unregistering Sasha Levin
2020-06-29 15:23 ` [PATCH 5.4 094/178] net: qede: stop adding events on an already destroyed workqueue Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 095/178] net: qed: fix NVMe login fails over VFs Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 096/178] net: qed: fix excessive QM ILT lines consumption Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 097/178] net: qede: fix PTP initialization on recovery Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 098/178] net: qede: fix use-after-free on recovery and AER handling Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 099/178] cxgb4: move handling L2T ARP failures to caller Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 100/178] ARM: imx5: add missing put_device() call in imx_suspend_alloc_ocram() Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 101/178] scsi: lpfc: Avoid another null dereference in lpfc_sli4_hba_unset() Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 102/178] usb: gadget: udc: Potential Oops in error handling code Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 103/178] usb: renesas_usbhs: getting residue from callback_result Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 104/178] nvme-multipath: set bdi capabilities once Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 105/178] nvme: fix possible deadlock when I/O is blocked Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 106/178] nvme-multipath: fix deadlock between ana_work and scan_work Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 107/178] nvme: don't protect ns mutation with ns->head->lock Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 108/178] nvme-multipath: fix deadlock due to head->lock Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 109/178] netfilter: ipset: fix unaligned atomic access Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 110/178] net: bcmgenet: use hardware padding of runt frames Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 111/178] clk: sifive: allocate sufficient memory for struct __prci_data Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 112/178] i2c: fsi: Fix the port number field in status register Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 113/178] i2c: core: check returned size of emulated smbus block read Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 114/178] afs: Fix storage of cell names Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 115/178] sched/deadline: Initialize ->dl_boosted Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 116/178] sched/core: Fix PI boosting between RT and DEADLINE tasks Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 117/178] sata_rcar: handle pm_runtime_get_sync failure cases Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 118/178] ata/libata: Fix usage of page address by page_address in ata_scsi_mode_select_xlat function Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 119/178] drm/amd/display: Use kfree() to free rgb_user in calculate_user_regamma_ramp() Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 120/178] riscv/atomic: Fix sign extension for RV64I Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 121/178] hwrng: ks-sa - Fix runtime PM imbalance on error Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 122/178] arm64/sve: Eliminate data races on sve_default_vl Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 123/178] ibmvnic: Harden device login requests Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 124/178] net: alx: fix race condition in alx_remove Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 125/178] test_objagg: Fix potential memory leak in error handling Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 126/178] pinctrl: qcom: spmi-gpio: fix warning about irq chip reusage Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 127/178] pinctrl: tegra: Use noirq suspend/resume callbacks Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 128/178] s390/ptrace: pass invalid syscall numbers to tracing Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 129/178] s390/ptrace: fix setting syscall number Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 130/178] s390/vdso: Use $(LD) instead of $(CC) to link vDSO Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 131/178] s390/vdso: fix vDSO clock_getres() Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 132/178] arm64: sve: Fix build failure when ARM64_SVE=y and SYSCTL=n Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 133/178] kbuild: improve cc-option to clean up all temporary files Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 134/178] recordmcount: support >64k sections Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 135/178] kprobes: Suppress the suspicious RCU warning on kprobes Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 136/178] blktrace: break out of blktrace setup on concurrent calls Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 137/178] block: update hctx map when use multiple maps Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 138/178] RISC-V: Don't allow write+exec only page mapping request in mmap Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 139/178] ALSA: hda: Add NVIDIA codec IDs 9a & 9d through a0 to patch table Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 140/178] ALSA: hda/realtek - Add quirk for MSI GE63 laptop Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 141/178] ALSA: hda/realtek: Add mute LED and micmute LED support for HP systems Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 142/178] ACPI: sysfs: Fix pm_profile_attr type Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 143/178] ACPI: configfs: Disallow loading ACPI tables when locked down Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 144/178] erofs: fix partially uninitialized misuse in z_erofs_onlinepage_fixup Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 145/178] KVM: X86: Fix MSR range of APIC registers in X2APIC mode Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 146/178] KVM: nVMX: Plumb L2 GPA through to PML emulation Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 147/178] KVM: VMX: Stop context switching MSR_IA32_UMWAIT_CONTROL Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 148/178] x86/cpu: Use pinning mask for CR4 bits needing to be 0 Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 149/178] x86/asm/64: Align start of __clear_user() loop to 16-bytes Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 150/178] btrfs: fix bytes_may_use underflow when running balance and scrub in parallel Sasha Levin
2020-06-29 15:24 ` Sasha Levin [this message]
2020-06-29 15:24 ` [PATCH 5.4 152/178] btrfs: check if a log root exists before locking the log_mutex on unlink Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 153/178] btrfs: fix failure of RWF_NOWAIT write into prealloc extent beyond eof Sasha Levin
2020-06-29 15:24 ` [PATCH 5.4 154/178] mm/slab: use memzero_explicit() in kzfree() Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 155/178] ocfs2: avoid inode removal while nfsd is accessing it Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 156/178] ocfs2: load global_inode_alloc Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 157/178] ocfs2: fix value of OCFS2_INVALID_SLOT Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 158/178] ocfs2: fix panic on nfs server over ocfs2 Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 159/178] mm/memcontrol.c: add missed css_put() Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 160/178] arm64: perf: Report the PC value in REGS_ABI_32 mode Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 161/178] arm64: dts: imx8mm-evk: correct ldo1/ldo2 voltage range Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 162/178] arm64: dts: imx8mn-ddr4-evk: " Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 163/178] tracing: Fix event trigger to accept redundant spaces Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 164/178] ring-buffer: Zero out time extend if it is nested and not absolute Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 165/178] drm/amd: fix potential memleak in err branch Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 166/178] drm: rcar-du: Fix build error Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 167/178] drm/radeon: fix fb_div check in ni_init_smc_spll_table() Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 168/178] drm/amdgpu: add fw release for sdma v5_0 Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 169/178] Staging: rtl8723bs: prevent buffer overflow in update_sta_support_rate() Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 170/178] sunrpc: fixed rollback in rpc_gssd_dummy_populate() Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 171/178] SUNRPC: Properly set the @subbuf parameter of xdr_buf_subsegment() Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 172/178] pNFS/flexfiles: Fix list corruption if the mirror count changes Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 173/178] NFSv4 fix CLOSE not waiting for direct IO compeletion Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 174/178] xprtrdma: Fix handling of RDMA_ERROR replies Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 175/178] dm writecache: correct uncommitted_block when discarding uncommitted entry Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 176/178] dm writecache: add cond_resched to loop in persistent_memory_claim() Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 177/178] xfs: add agf freeblocks verify in xfs_agf_verify Sasha Levin
2020-06-29 15:25 ` [PATCH 5.4 178/178] Linux 5.4.50-rc1 Sasha Levin
2020-06-30  5:22 ` [PATCH 5.4 000/178] 5.4.50-rc1 review Naresh Kamboju
2020-06-30  9:15 ` Jon Hunter
2020-06-30 17:22 ` Guenter Roeck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200629152523.2494198-152-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=dsterba@suse.com \
    --cc=fdmanana@suse.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=josef@toxicpanda.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).