linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org,
	Wolfgang Frisch <wolfgang.frisch@suse.com>,
	Lukas Czerner <lczerner@redhat.com>, Jan Kara <jack@suse.cz>,
	Theodore Tso <tytso@mit.edu>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.8 075/148] ext4: check journal inode extents more carefully
Date: Mon, 24 Aug 2020 10:29:33 +0200	[thread overview]
Message-ID: <20200824082417.667619307@linuxfoundation.org> (raw)
In-Reply-To: <20200824082413.900489417@linuxfoundation.org>

From: Jan Kara <jack@suse.cz>

[ Upstream commit ce9f24cccdc019229b70a5c15e2b09ad9c0ab5d1 ]

Currently, system zones just track ranges of block, that are "important"
fs metadata (bitmaps, group descriptors, journal blocks, etc.). This
however complicates how extent tree (or indirect blocks) can be checked
for inodes that actually track such metadata - currently the journal
inode but arguably we should be treating quota files or resize inode
similarly. We cannot run __ext4_ext_check() on such metadata inodes when
loading their extents as that would immediately trigger the validity
checks and so we just hack around that and special-case the journal
inode. This however leads to a situation that a journal inode which has
extent tree of depth at least one can have invalid extent tree that gets
unnoticed until ext4_cache_extents() crashes.

To overcome this limitation, track inode number each system zone belongs
to (0 is used for zones not belonging to any inode). We can then verify
inode number matches the expected one when verifying extent tree and
thus avoid the false errors. With this there's no need to to
special-case journal inode during extent tree checking anymore so remove
it.

Fixes: 0a944e8a6c66 ("ext4: don't perform block validity checks on the journal inode")
Reported-by: Wolfgang Frisch <wolfgang.frisch@suse.com>
Reviewed-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20200728130437.7804-4-jack@suse.cz
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 fs/ext4/block_validity.c | 51 ++++++++++++++++++++--------------------
 fs/ext4/ext4.h           |  6 ++---
 fs/ext4/extents.c        | 16 +++++--------
 fs/ext4/indirect.c       |  6 ++---
 fs/ext4/inode.c          |  5 ++--
 fs/ext4/mballoc.c        |  4 ++--
 6 files changed, 41 insertions(+), 47 deletions(-)

diff --git a/fs/ext4/block_validity.c b/fs/ext4/block_validity.c
index b394a50ebbe30..e830a9d4e10d3 100644
--- a/fs/ext4/block_validity.c
+++ b/fs/ext4/block_validity.c
@@ -24,6 +24,7 @@ struct ext4_system_zone {
 	struct rb_node	node;
 	ext4_fsblk_t	start_blk;
 	unsigned int	count;
+	u32		ino;
 };
 
 static struct kmem_cache *ext4_system_zone_cachep;
@@ -45,7 +46,8 @@ void ext4_exit_system_zone(void)
 static inline int can_merge(struct ext4_system_zone *entry1,
 		     struct ext4_system_zone *entry2)
 {
-	if ((entry1->start_blk + entry1->count) == entry2->start_blk)
+	if ((entry1->start_blk + entry1->count) == entry2->start_blk &&
+	    entry1->ino == entry2->ino)
 		return 1;
 	return 0;
 }
@@ -66,7 +68,7 @@ static void release_system_zone(struct ext4_system_blocks *system_blks)
  */
 static int add_system_zone(struct ext4_system_blocks *system_blks,
 			   ext4_fsblk_t start_blk,
-			   unsigned int count)
+			   unsigned int count, u32 ino)
 {
 	struct ext4_system_zone *new_entry, *entry;
 	struct rb_node **n = &system_blks->root.rb_node, *node;
@@ -89,6 +91,7 @@ static int add_system_zone(struct ext4_system_blocks *system_blks,
 		return -ENOMEM;
 	new_entry->start_blk = start_blk;
 	new_entry->count = count;
+	new_entry->ino = ino;
 	new_node = &new_entry->node;
 
 	rb_link_node(new_node, parent, n);
@@ -149,7 +152,7 @@ static void debug_print_tree(struct ext4_sb_info *sbi)
 static int ext4_data_block_valid_rcu(struct ext4_sb_info *sbi,
 				     struct ext4_system_blocks *system_blks,
 				     ext4_fsblk_t start_blk,
-				     unsigned int count)
+				     unsigned int count, ino_t ino)
 {
 	struct ext4_system_zone *entry;
 	struct rb_node *n;
@@ -170,7 +173,7 @@ static int ext4_data_block_valid_rcu(struct ext4_sb_info *sbi,
 		else if (start_blk >= (entry->start_blk + entry->count))
 			n = n->rb_right;
 		else
-			return 0;
+			return entry->ino == ino;
 	}
 	return 1;
 }
@@ -204,19 +207,18 @@ static int ext4_protect_reserved_inode(struct super_block *sb,
 		if (n == 0) {
 			i++;
 		} else {
-			if (!ext4_data_block_valid_rcu(sbi, system_blks,
-						map.m_pblk, n)) {
-				err = -EFSCORRUPTED;
-				__ext4_error(sb, __func__, __LINE__, -err,
-					     map.m_pblk, "blocks %llu-%llu "
-					     "from inode %u overlap system zone",
-					     map.m_pblk,
-					     map.m_pblk + map.m_len - 1, ino);
+			err = add_system_zone(system_blks, map.m_pblk, n, ino);
+			if (err < 0) {
+				if (err == -EFSCORRUPTED) {
+					__ext4_error(sb, __func__, __LINE__,
+						     -err, map.m_pblk,
+						     "blocks %llu-%llu from inode %u overlap system zone",
+						     map.m_pblk,
+						     map.m_pblk + map.m_len - 1,
+						     ino);
+				}
 				break;
 			}
-			err = add_system_zone(system_blks, map.m_pblk, n);
-			if (err < 0)
-				break;
 			i += n;
 		}
 	}
@@ -270,19 +272,19 @@ int ext4_setup_system_zone(struct super_block *sb)
 		    ((i < 5) || ((i % flex_size) == 0)))
 			add_system_zone(system_blks,
 					ext4_group_first_block_no(sb, i),
-					ext4_bg_num_gdb(sb, i) + 1);
+					ext4_bg_num_gdb(sb, i) + 1, 0);
 		gdp = ext4_get_group_desc(sb, i, NULL);
 		ret = add_system_zone(system_blks,
-				ext4_block_bitmap(sb, gdp), 1);
+				ext4_block_bitmap(sb, gdp), 1, 0);
 		if (ret)
 			goto err;
 		ret = add_system_zone(system_blks,
-				ext4_inode_bitmap(sb, gdp), 1);
+				ext4_inode_bitmap(sb, gdp), 1, 0);
 		if (ret)
 			goto err;
 		ret = add_system_zone(system_blks,
 				ext4_inode_table(sb, gdp),
-				sbi->s_itb_per_group);
+				sbi->s_itb_per_group, 0);
 		if (ret)
 			goto err;
 	}
@@ -331,7 +333,7 @@ void ext4_release_system_zone(struct super_block *sb)
 		call_rcu(&system_blks->rcu, ext4_destroy_system_zone);
 }
 
-int ext4_data_block_valid(struct ext4_sb_info *sbi, ext4_fsblk_t start_blk,
+int ext4_inode_block_valid(struct inode *inode, ext4_fsblk_t start_blk,
 			  unsigned int count)
 {
 	struct ext4_system_blocks *system_blks;
@@ -343,9 +345,9 @@ int ext4_data_block_valid(struct ext4_sb_info *sbi, ext4_fsblk_t start_blk,
 	 * mount option.
 	 */
 	rcu_read_lock();
-	system_blks = rcu_dereference(sbi->system_blks);
-	ret = ext4_data_block_valid_rcu(sbi, system_blks, start_blk,
-					count);
+	system_blks = rcu_dereference(EXT4_SB(inode->i_sb)->system_blks);
+	ret = ext4_data_block_valid_rcu(EXT4_SB(inode->i_sb), system_blks,
+					start_blk, count, inode->i_ino);
 	rcu_read_unlock();
 	return ret;
 }
@@ -364,8 +366,7 @@ int ext4_check_blockref(const char *function, unsigned int line,
 	while (bref < p+max) {
 		blk = le32_to_cpu(*bref++);
 		if (blk &&
-		    unlikely(!ext4_data_block_valid(EXT4_SB(inode->i_sb),
-						    blk, 1))) {
+		    unlikely(!ext4_inode_block_valid(inode, blk, 1))) {
 			ext4_error_inode(inode, function, line, blk,
 					 "invalid block");
 			return -EFSCORRUPTED;
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 42f5060f3cdf1..42815304902b8 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -3363,9 +3363,9 @@ extern void ext4_release_system_zone(struct super_block *sb);
 extern int ext4_setup_system_zone(struct super_block *sb);
 extern int __init ext4_init_system_zone(void);
 extern void ext4_exit_system_zone(void);
-extern int ext4_data_block_valid(struct ext4_sb_info *sbi,
-				 ext4_fsblk_t start_blk,
-				 unsigned int count);
+extern int ext4_inode_block_valid(struct inode *inode,
+				  ext4_fsblk_t start_blk,
+				  unsigned int count);
 extern int ext4_check_blockref(const char *, unsigned int,
 			       struct inode *, __le32 *, unsigned int);
 
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 221f240eae604..d75054570e44c 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -340,7 +340,7 @@ static int ext4_valid_extent(struct inode *inode, struct ext4_extent *ext)
 	 */
 	if (lblock + len <= lblock)
 		return 0;
-	return ext4_data_block_valid(EXT4_SB(inode->i_sb), block, len);
+	return ext4_inode_block_valid(inode, block, len);
 }
 
 static int ext4_valid_extent_idx(struct inode *inode,
@@ -348,7 +348,7 @@ static int ext4_valid_extent_idx(struct inode *inode,
 {
 	ext4_fsblk_t block = ext4_idx_pblock(ext_idx);
 
-	return ext4_data_block_valid(EXT4_SB(inode->i_sb), block, 1);
+	return ext4_inode_block_valid(inode, block, 1);
 }
 
 static int ext4_valid_extent_entries(struct inode *inode,
@@ -507,14 +507,10 @@ __read_extent_tree_block(const char *function, unsigned int line,
 	}
 	if (buffer_verified(bh) && !(flags & EXT4_EX_FORCE_CACHE))
 		return bh;
-	if (!ext4_has_feature_journal(inode->i_sb) ||
-	    (inode->i_ino !=
-	     le32_to_cpu(EXT4_SB(inode->i_sb)->s_es->s_journal_inum))) {
-		err = __ext4_ext_check(function, line, inode,
-				       ext_block_hdr(bh), depth, pblk);
-		if (err)
-			goto errout;
-	}
+	err = __ext4_ext_check(function, line, inode,
+			       ext_block_hdr(bh), depth, pblk);
+	if (err)
+		goto errout;
 	set_buffer_verified(bh);
 	/*
 	 * If this is a leaf block, cache all of its entries
diff --git a/fs/ext4/indirect.c b/fs/ext4/indirect.c
index be2b66eb65f7a..4026418257121 100644
--- a/fs/ext4/indirect.c
+++ b/fs/ext4/indirect.c
@@ -858,8 +858,7 @@ static int ext4_clear_blocks(handle_t *handle, struct inode *inode,
 	else if (ext4_should_journal_data(inode))
 		flags |= EXT4_FREE_BLOCKS_FORGET;
 
-	if (!ext4_data_block_valid(EXT4_SB(inode->i_sb), block_to_free,
-				   count)) {
+	if (!ext4_inode_block_valid(inode, block_to_free, count)) {
 		EXT4_ERROR_INODE(inode, "attempt to clear invalid "
 				 "blocks %llu len %lu",
 				 (unsigned long long) block_to_free, count);
@@ -1004,8 +1003,7 @@ static void ext4_free_branches(handle_t *handle, struct inode *inode,
 			if (!nr)
 				continue;		/* A hole */
 
-			if (!ext4_data_block_valid(EXT4_SB(inode->i_sb),
-						   nr, 1)) {
+			if (!ext4_inode_block_valid(inode, nr, 1)) {
 				EXT4_ERROR_INODE(inode,
 						 "invalid indirect mapped "
 						 "block %lu (level %d)",
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 10dd470876b30..92573f8540ab7 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -394,8 +394,7 @@ static int __check_block_validity(struct inode *inode, const char *func,
 	    (inode->i_ino ==
 	     le32_to_cpu(EXT4_SB(inode->i_sb)->s_es->s_journal_inum)))
 		return 0;
-	if (!ext4_data_block_valid(EXT4_SB(inode->i_sb), map->m_pblk,
-				   map->m_len)) {
+	if (!ext4_inode_block_valid(inode, map->m_pblk, map->m_len)) {
 		ext4_error_inode(inode, func, line, map->m_pblk,
 				 "lblock %lu mapped to illegal pblock %llu "
 				 "(length %d)", (unsigned long) map->m_lblk,
@@ -4760,7 +4759,7 @@ struct inode *__ext4_iget(struct super_block *sb, unsigned long ino,
 
 	ret = 0;
 	if (ei->i_file_acl &&
-	    !ext4_data_block_valid(EXT4_SB(sb), ei->i_file_acl, 1)) {
+	    !ext4_inode_block_valid(inode, ei->i_file_acl, 1)) {
 		ext4_error_inode(inode, function, line, 0,
 				 "iget: bad extended attribute block %llu",
 				 ei->i_file_acl);
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index c0a331e2feb02..38719c156573c 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -3090,7 +3090,7 @@ ext4_mb_mark_diskspace_used(struct ext4_allocation_context *ac,
 	block = ext4_grp_offs_to_block(sb, &ac->ac_b_ex);
 
 	len = EXT4_C2B(sbi, ac->ac_b_ex.fe_len);
-	if (!ext4_data_block_valid(sbi, block, len)) {
+	if (!ext4_inode_block_valid(ac->ac_inode, block, len)) {
 		ext4_error(sb, "Allocating blocks %llu-%llu which overlap "
 			   "fs metadata", block, block+len);
 		/* File system mounted not to panic on error
@@ -4915,7 +4915,7 @@ void ext4_free_blocks(handle_t *handle, struct inode *inode,
 
 	sbi = EXT4_SB(sb);
 	if (!(flags & EXT4_FREE_BLOCKS_VALIDATED) &&
-	    !ext4_data_block_valid(sbi, block, count)) {
+	    !ext4_inode_block_valid(inode, block, count)) {
 		ext4_error(sb, "Freeing blocks not in datazone - "
 			   "block = %llu, count = %lu", block, count);
 		goto error_return;
-- 
2.25.1




  parent reply	other threads:[~2020-08-24  9:57 UTC|newest]

Thread overview: 152+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-24  8:28 [PATCH 5.8 000/148] 5.8.4-rc1 review Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 001/148] drm/vgem: Replace opencoded version of drm_gem_dumb_map_offset() Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 002/148] drm/panel-simple: Fix inverted V/H SYNC for Frida FRD350H54004 panel Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 003/148] drm/ast: Remove unused code paths for AST 1180 Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 004/148] drm/ast: Initialize DRAM type before posting GPU Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 005/148] khugepaged: adjust VM_BUG_ON_MM() in __khugepaged_enter() Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 006/148] ALSA: hda: avoid reset of sdo_limit Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 007/148] ALSA: hda/realtek: Add quirk for Samsung Galaxy Flex Book Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 008/148] ALSA: hda/realtek: Add quirk for Samsung Galaxy Book Ion Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 009/148] can: j1939: transport: j1939_session_tx_dat(): fix use-after-free read in j1939_tp_txtimer() Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 010/148] can: j1939: socket: j1939_sk_bind(): make sure ml_priv is allocated Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 011/148] spi: Prevent adding devices below an unregistering controller Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 012/148] io_uring: find and cancel head link async work on files exit Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 013/148] mm/vunmap: add cond_resched() in vunmap_pmd_range Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 014/148] romfs: fix uninitialized memory leak in romfs_dev_read() Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 015/148] kernel/relay.c: fix memleak on destroy relay channel Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 016/148] uprobes: __replace_page() avoid BUG in munlock_vma_page() Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 017/148] squashfs: avoid bio_alloc() failure with 1Mbyte blocks Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 018/148] mm: include CMA pages in lowmem_reserve at boot Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 019/148] mm, page_alloc: fix core hung in free_pcppages_bulk() Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 020/148] ASoC: amd: renoir: restore two more registers during resume Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 021/148] RDMA/hfi1: Correct an interlock issue for TID RDMA WRITE request Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 022/148] opp: Enable resources again if they were disabled earlier Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 023/148] opp: Put opp table in dev_pm_opp_set_rate() for empty tables Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 024/148] opp: Put opp table in dev_pm_opp_set_rate() if _set_opp_bw() fails Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 025/148] ext4: do not block RWF_NOWAIT dio write on unallocated space Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 026/148] ext4: fix checking of directory entry validity for inline directories Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 027/148] jbd2: add the missing unlock_buffer() in the error path of jbd2_write_superblock() Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 028/148] scsi: zfcp: Fix use-after-free in request timeout handlers Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 029/148] KVM: Pass MMU notifier range flags to kvm_unmap_hva_range() Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 030/148] selftests: kvm: Use a shorter encoding to clear RAX Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 031/148] s390/pci: fix zpci_bus_link_virtfn() Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 032/148] s390/pci: re-introduce zpci_remove_device() Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 033/148] s390/pci: fix PF/VF linking on hot plug Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 034/148] s390/pci: ignore stale configuration request event Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 035/148] mm/memory.c: skip spurious TLB flush for retried page fault Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 036/148] drm: amdgpu: Use the correct size when allocating memory Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 037/148] drm/amdgpu/display: use GFP_ATOMIC in dcn20_validate_bandwidth_internal Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 038/148] drm/amd/display: Fix incorrect backlight register offset for DCN Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 039/148] drm/amd/display: Fix EDID parsing after resume from suspend Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 040/148] drm/amd/display: Blank stream before destroying HDCP session Greg Kroah-Hartman
2020-08-24  8:28 ` [PATCH 5.8 041/148] drm/amd/display: Fix DFPstate hang due to view port changed Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 042/148] drm/amd/display: fix pow() crashing when given base 0 Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 043/148] drm/i915/pmu: Prefer drm_WARN_ON over WARN_ON Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 044/148] drm/i915: Provide the perf pmu.module Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 045/148] scsi: ufs: Add DELAY_BEFORE_LPM quirk for Micron devices Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 046/148] scsi: target: tcmu: Fix crash in tcmu_flush_dcache_range on ARM Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 047/148] media: budget-core: Improve exception handling in budget_register() Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 048/148] media: coda: jpeg: add NULL check after kmalloc Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 049/148] f2fs: fix to check page dirty status before writeback Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 050/148] rtc: goldfish: Enable interrupt in set_alarm() when necessary Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 051/148] media: vpss: clean up resources in init Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 052/148] f2fs: should avoid inode eviction in synchronous path Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 053/148] Input: psmouse - add a newline when printing proto by sysfs Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 054/148] MIPS: Fix unable to reserve memory for Crash kernel Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 055/148] m68knommu: fix overwriting of bits in ColdFire V3 cache control Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 056/148] svcrdma: Fix another Receive buffer leak Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 057/148] xfs: fix inode quota reservation checks Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 058/148] drm/ttm: fix offset in VMAs with a pg_offs in ttm_bo_vm_access Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 059/148] riscv: Fixup static_obj() fail Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 060/148] jffs2: fix UAF problem Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 061/148] ceph: fix use-after-free for fsc->mdsc Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 062/148] swiotlb-xen: use vmalloc_to_page on vmalloc virt addresses Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 063/148] cpufreq: intel_pstate: Fix cpuinfo_max_freq when MSR_TURBO_RATIO_LIMIT is 0 Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 064/148] scsi: libfc: Free skb in fc_disc_gpn_id_resp() for valid cases Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 065/148] virtio_ring: Avoid loop when vq is broken in virtqueue_poll Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 066/148] media: camss: fix memory leaks on error handling paths in probe Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 067/148] tools/testing/selftests/cgroup/cgroup_util.c: cg_read_strcmp: fix null pointer dereference Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 068/148] xfs: Fix UBSAN null-ptr-deref in xfs_sysfs_init Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 069/148] alpha: fix annotation of io{read,write}{16,32}be() Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 070/148] fat: fix fat_ra_init() for data clusters == 0 Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 071/148] fs/signalfd.c: fix inconsistent return codes for signalfd4 Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 072/148] ext4: fix potential negative array index in do_split() Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 073/148] drm/virtio: fix missing dma_fence_put() in virtio_gpu_execbuffer_ioctl() Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 074/148] ext4: dont allow overlapping system zones Greg Kroah-Hartman
2020-08-24  8:29 ` Greg Kroah-Hartman [this message]
2020-08-24  8:29 ` [PATCH 5.8 076/148] netfilter: nf_tables: nft_exthdr: the presence return value should be little-endian Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 077/148] spi: stm32: fixes suspend/resume management Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 078/148] ASoC: q6afe-dai: mark all widgets registers as SND_SOC_NOPM Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 079/148] ASoC: q6routing: add dummy register read/write function Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 080/148] tools/bpftool: Make skeleton code C++17-friendly by dropping typeof() Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 081/148] bpf: sock_ops ctx access may stomp registers in corner case Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 082/148] bpf: sock_ops sk access may stomp registers when dst_reg = src_reg Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 083/148] libbpf: Fix BTF-defined map-in-map initialization on 32-bit host arches Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 084/148] can: j1939: fix kernel-infoleak in j1939_sk_sock2sockaddr_can() Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 085/148] can: j1939: transport: j1939_simple_recv(): ignore local J1939 messages send not by J1939 stack Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 086/148] can: j1939: transport: add j1939_session_skb_find_by_offset() function Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 087/148] igc: Fix PTP initialization Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 088/148] i40e: Set RX_ONLY mode for unicast promiscuous on VLAN Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 089/148] i40e: Fix crash during removing i40e driver Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 090/148] net: fec: correct the error path for regulator disable in probe Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 091/148] bonding: show saner speed for broadcast mode Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 092/148] can: j1939: fix support for multipacket broadcast message Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 093/148] can: j1939: cancel rxtimer on multipacket broadcast session complete Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 094/148] can: j1939: abort multipacket broadcast session when timeout occurs Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 095/148] can: j1939: add rxtimer for multipacket broadcast session Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 096/148] bonding: fix a potential double-unregister Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 097/148] ipvlan: fix device features Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 098/148] s390/runtime_instrumentation: fix storage key handling Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 099/148] s390/ptrace: " Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 100/148] ASoC: msm8916-wcd-analog: fix register Interrupt offset Greg Kroah-Hartman
2020-08-24  8:29 ` [PATCH 5.8 101/148] ASoC: intel: Fix memleak in sst_media_open Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 102/148] watch_queue: Limit the number of watches a user can hold Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 103/148] vfio-pci: Avoid recursive read-lock usage Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 104/148] vfio/type1: Add proper error unwind for vfio_iommu_replay() Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 105/148] arch/ia64: Restore arch-specific pgd_offset_k implementation Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 106/148] kvm: x86: Toggling CR4.SMAP does not load PDPTEs in PAE mode Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 107/148] kvm: x86: Toggling CR4.PKE " Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 108/148] of/address: check for invalid range.cpu_addr Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 109/148] scsi: ufs: ti-j721e-ufs: Fix error return in ti_j721e_ufs_probe() Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 110/148] scsi: ufs: Add quirk to fix mishandling utrlclr/utmrlclr Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 111/148] scsi: ufs: Add quirk to disallow reset of interrupt aggregation Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 112/148] scsi: ufs: Add quirk to enable host controller without hce Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 113/148] scsi: ufs: Introduce UFSHCD_QUIRK_PRDT_BYTE_GRAN quirk Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 114/148] scsi: ufs: Add quirk to fix abnormal ocs fatal error Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 115/148] scsi: ufs-pci: Add quirk for broken auto-hibernate for Intel EHL Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 116/148] scsi: ufs: Fix interrupt error message for shared interrupts Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 117/148] Revert "scsi: qla2xxx: Disable T10-DIF feature with FC-NVMe during probe" Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 118/148] kconfig: qconf: do not limit the pop-up menu to the first row Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 119/148] kconfig: qconf: fix signal connection to invalid slots Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 120/148] efi: avoid error message when booting under Xen Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 121/148] Fix build error when CONFIG_ACPI is not set/enabled: Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 122/148] RDMA/bnxt_re: Do not add user qps to flushlist Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 123/148] Revert "RDMA/hns: Reserve one sge in order to avoid local length error" Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 124/148] afs: Fix key ref leak in afs_put_operation() Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 125/148] kconfig: qconf: remove qInfo() to get back Qt4 support Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 126/148] afs: Fix NULL deref in afs_dynroot_depopulate() Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 127/148] ARM64: vdso32: Install vdso32 from vdso_install Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 128/148] powerpc: Add POWER10 raw mode cputable entry Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 129/148] powerpc/fixmap: Fix the size of the early debug area Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 130/148] bpf: Use get_file_rcu() instead of get_file() for task_file iterator Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 131/148] powerpc/pseries/hotplug-cpu: wait indefinitely for vCPU death Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 132/148] bonding: fix active-backup failover for current ARP slave Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 133/148] net: ena: Prevent reset after device destruction Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 134/148] net: ena: Change WARN_ON expression in ena_del_napi_in_range() Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 135/148] net: gemini: Fix missing free_netdev() in error path of gemini_ethernet_port_probe() Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 136/148] selftests/bpf: Remove test_align leftovers Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 137/148] hv_netvsc: Fix the queue_mapping in netvsc_vf_xmit() Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 138/148] net: dsa: b53: check for timeout Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 139/148] epoll: Keep a reference on files added to the check list Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 140/148] powerpc: Fix P10 PVR revision in /proc/cpuinfo for SMT4 cores Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 141/148] powerpc/pseries: Do not initiate shutdown when system is running on UPS Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 142/148] EDAC/{i7core,sb,pnd2,skx}: Fix error event severity Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 143/148] efi/x86: Mark kernel rodata non-executable for mixed mode Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 144/148] efi: add missed destroy_workqueue when efisubsys_init fails Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 145/148] efi/libstub: Stop parsing arguments at "--" Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 146/148] efi/libstub: Handle NULL cmdline Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 147/148] efi/libstub: Handle unterminated cmdline Greg Kroah-Hartman
2020-08-24  8:30 ` [PATCH 5.8 148/148] do_epoll_ctl(): clean the failure exits up a bit Greg Kroah-Hartman
2020-08-24 13:40 ` [PATCH 5.8 000/148] 5.8.4-rc1 review Guenter Roeck
2020-08-24 15:25   ` Sasha Levin
2020-08-24 16:54 ` Naresh Kamboju

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=20200824082417.667619307@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=jack@suse.cz \
    --cc=lczerner@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=tytso@mit.edu \
    --cc=wolfgang.frisch@suse.com \
    /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).