All of lore.kernel.org
 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, stable@kernel.org,
	Ojaswin Mujoo <ojaswin@linux.ibm.com>, Jan Kara <jack@suse.cz>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Theodore Tso <tytso@mit.edu>,
	Stefan Wahren <stefan.wahren@i2se.com>
Subject: [PATCH 5.19 206/207] ext4: use buckets for cr 1 block scan instead of rbtree
Date: Mon, 26 Sep 2022 12:13:15 +0200	[thread overview]
Message-ID: <20220926100815.839035039@linuxfoundation.org> (raw)
In-Reply-To: <20220926100806.522017616@linuxfoundation.org>

From: Jan Kara <jack@suse.cz>

commit 83e80a6e3543f37f74c8e48a5f305b054b65ce2a upstream.

Using rbtree for sorting groups by average fragment size is relatively
expensive (needs rbtree update on every block freeing or allocation) and
leads to wide spreading of allocations because selection of block group
is very sentitive both to changes in free space and amount of blocks
allocated. Furthermore selecting group with the best matching average
fragment size is not necessary anyway, even more so because the
variability of fragment sizes within a group is likely large so average
is not telling much. We just need a group with large enough average
fragment size so that we have high probability of finding large enough
free extent and we don't want average fragment size to be too big so
that we are likely to find free extent only somewhat larger than what we
need.

So instead of maintaing rbtree of groups sorted by fragment size keep
bins (lists) or groups where average fragment size is in the interval
[2^i, 2^(i+1)). This structure requires less updates on block allocation
/ freeing, generally avoids chaotic spreading of allocations into block
groups, and still is able to quickly (even faster that the rbtree)
provide a block group which is likely to have a suitably sized free
space extent.

This patch reduces number of block groups used when untarring archive
with medium sized files (size somewhat above 64k which is default
mballoc limit for avoiding locality group preallocation) to about half
and thus improves write speeds for eMMC flash significantly.

Fixes: 196e402adf2e ("ext4: improve cr 0 / cr 1 group scanning")
CC: stable@kernel.org
Reported-and-tested-by: Stefan Wahren <stefan.wahren@i2se.com>
Tested-by: Ojaswin Mujoo <ojaswin@linux.ibm.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Link: https://lore.kernel.org/all/0d81a7c2-46b7-6010-62a4-3e6cfc1628d6@i2se.com/
Link: https://lore.kernel.org/r/20220908092136.11770-5-jack@suse.cz
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/ext4/ext4.h    |   10 +-
 fs/ext4/mballoc.c |  249 ++++++++++++++++++++++--------------------------------
 fs/ext4/mballoc.h |    1 
 3 files changed, 111 insertions(+), 149 deletions(-)

--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -167,8 +167,6 @@ enum SHIFT_DIRECTION {
 #define EXT4_MB_CR0_OPTIMIZED		0x8000
 /* Avg fragment size rb tree lookup succeeded at least once for cr = 1 */
 #define EXT4_MB_CR1_OPTIMIZED		0x00010000
-/* Perform linear traversal for one group */
-#define EXT4_MB_SEARCH_NEXT_LINEAR	0x00020000
 struct ext4_allocation_request {
 	/* target inode for block we're allocating */
 	struct inode *inode;
@@ -1589,8 +1587,8 @@ struct ext4_sb_info {
 	struct list_head s_discard_list;
 	struct work_struct s_discard_work;
 	atomic_t s_retry_alloc_pending;
-	struct rb_root s_mb_avg_fragment_size_root;
-	rwlock_t s_mb_rb_lock;
+	struct list_head *s_mb_avg_fragment_size;
+	rwlock_t *s_mb_avg_fragment_size_locks;
 	struct list_head *s_mb_largest_free_orders;
 	rwlock_t *s_mb_largest_free_orders_locks;
 
@@ -3402,6 +3400,8 @@ struct ext4_group_info {
 	ext4_grpblk_t	bb_first_free;	/* first free block */
 	ext4_grpblk_t	bb_free;	/* total free blocks */
 	ext4_grpblk_t	bb_fragments;	/* nr of freespace fragments */
+	int		bb_avg_fragment_size_order;	/* order of average
+							   fragment in BG */
 	ext4_grpblk_t	bb_largest_free_order;/* order of largest frag in BG */
 	ext4_group_t	bb_group;	/* Group number */
 	struct          list_head bb_prealloc_list;
@@ -3409,7 +3409,7 @@ struct ext4_group_info {
 	void            *bb_bitmap;
 #endif
 	struct rw_semaphore alloc_sem;
-	struct rb_node	bb_avg_fragment_size_rb;
+	struct list_head bb_avg_fragment_size_node;
 	struct list_head bb_largest_free_order_node;
 	ext4_grpblk_t	bb_counters[];	/* Nr of free power-of-two-block
 					 * regions, index is order.
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -140,13 +140,15 @@
  *    number of buddy bitmap orders possible) number of lists. Group-infos are
  *    placed in appropriate lists.
  *
- * 2) Average fragment size rb tree (sbi->s_mb_avg_fragment_size_root)
+ * 2) Average fragment size lists (sbi->s_mb_avg_fragment_size)
  *
- *    Locking: sbi->s_mb_rb_lock (rwlock)
+ *    Locking: sbi->s_mb_avg_fragment_size_locks(array of rw locks)
  *
- *    This is a red black tree consisting of group infos and the tree is sorted
- *    by average fragment sizes (which is calculated as ext4_group_info->bb_free
- *    / ext4_group_info->bb_fragments).
+ *    This is an array of lists where in the i-th list there are groups with
+ *    average fragment size >= 2^i and < 2^(i+1). The average fragment size
+ *    is computed as ext4_group_info->bb_free / ext4_group_info->bb_fragments.
+ *    Note that we don't bother with a special list for completely empty groups
+ *    so we only have MB_NUM_ORDERS(sb) lists.
  *
  * When "mb_optimize_scan" mount option is set, mballoc consults the above data
  * structures to decide the order in which groups are to be traversed for
@@ -160,7 +162,8 @@
  *
  * At CR = 1, we only consider groups where average fragment size > request
  * size. So, we lookup a group which has average fragment size just above or
- * equal to request size using our rb tree (data structure 2) in O(log N) time.
+ * equal to request size using our average fragment size group lists (data
+ * structure 2) in O(1) time.
  *
  * If "mb_optimize_scan" mount option is not set, mballoc traverses groups in
  * linear order which requires O(N) search time for each CR 0 and CR 1 phase.
@@ -802,65 +805,51 @@ static void ext4_mb_mark_free_simple(str
 	}
 }
 
-static void ext4_mb_rb_insert(struct rb_root *root, struct rb_node *new,
-			int (*cmp)(struct rb_node *, struct rb_node *))
+static int mb_avg_fragment_size_order(struct super_block *sb, ext4_grpblk_t len)
 {
-	struct rb_node **iter = &root->rb_node, *parent = NULL;
+	int order;
 
-	while (*iter) {
-		parent = *iter;
-		if (cmp(new, *iter) > 0)
-			iter = &((*iter)->rb_left);
-		else
-			iter = &((*iter)->rb_right);
-	}
-
-	rb_link_node(new, parent, iter);
-	rb_insert_color(new, root);
-}
-
-static int
-ext4_mb_avg_fragment_size_cmp(struct rb_node *rb1, struct rb_node *rb2)
-{
-	struct ext4_group_info *grp1 = rb_entry(rb1,
-						struct ext4_group_info,
-						bb_avg_fragment_size_rb);
-	struct ext4_group_info *grp2 = rb_entry(rb2,
-						struct ext4_group_info,
-						bb_avg_fragment_size_rb);
-	int num_frags_1, num_frags_2;
-
-	num_frags_1 = grp1->bb_fragments ?
-		grp1->bb_free / grp1->bb_fragments : 0;
-	num_frags_2 = grp2->bb_fragments ?
-		grp2->bb_free / grp2->bb_fragments : 0;
-
-	return (num_frags_2 - num_frags_1);
+	/*
+	 * We don't bother with a special lists groups with only 1 block free
+	 * extents and for completely empty groups.
+	 */
+	order = fls(len) - 2;
+	if (order < 0)
+		return 0;
+	if (order == MB_NUM_ORDERS(sb))
+		order--;
+	return order;
 }
 
-/*
- * Reinsert grpinfo into the avg_fragment_size tree with new average
- * fragment size.
- */
+/* Move group to appropriate avg_fragment_size list */
 static void
 mb_update_avg_fragment_size(struct super_block *sb, struct ext4_group_info *grp)
 {
 	struct ext4_sb_info *sbi = EXT4_SB(sb);
+	int new_order;
 
 	if (!test_opt2(sb, MB_OPTIMIZE_SCAN) || grp->bb_free == 0)
 		return;
 
-	write_lock(&sbi->s_mb_rb_lock);
-	if (!RB_EMPTY_NODE(&grp->bb_avg_fragment_size_rb)) {
-		rb_erase(&grp->bb_avg_fragment_size_rb,
-				&sbi->s_mb_avg_fragment_size_root);
-		RB_CLEAR_NODE(&grp->bb_avg_fragment_size_rb);
-	}
+	new_order = mb_avg_fragment_size_order(sb,
+					grp->bb_free / grp->bb_fragments);
+	if (new_order == grp->bb_avg_fragment_size_order)
+		return;
 
-	ext4_mb_rb_insert(&sbi->s_mb_avg_fragment_size_root,
-		&grp->bb_avg_fragment_size_rb,
-		ext4_mb_avg_fragment_size_cmp);
-	write_unlock(&sbi->s_mb_rb_lock);
+	if (grp->bb_avg_fragment_size_order != -1) {
+		write_lock(&sbi->s_mb_avg_fragment_size_locks[
+					grp->bb_avg_fragment_size_order]);
+		list_del(&grp->bb_avg_fragment_size_node);
+		write_unlock(&sbi->s_mb_avg_fragment_size_locks[
+					grp->bb_avg_fragment_size_order]);
+	}
+	grp->bb_avg_fragment_size_order = new_order;
+	write_lock(&sbi->s_mb_avg_fragment_size_locks[
+					grp->bb_avg_fragment_size_order]);
+	list_add_tail(&grp->bb_avg_fragment_size_node,
+		&sbi->s_mb_avg_fragment_size[grp->bb_avg_fragment_size_order]);
+	write_unlock(&sbi->s_mb_avg_fragment_size_locks[
+					grp->bb_avg_fragment_size_order]);
 }
 
 /*
@@ -909,86 +898,56 @@ static void ext4_mb_choose_next_group_cr
 		*new_cr = 1;
 	} else {
 		*group = grp->bb_group;
-		ac->ac_last_optimal_group = *group;
 		ac->ac_flags |= EXT4_MB_CR0_OPTIMIZED;
 	}
 }
 
 /*
- * Choose next group by traversing average fragment size tree. Updates *new_cr
- * if cr lvel needs an update. Sets EXT4_MB_SEARCH_NEXT_LINEAR to indicate that
- * the linear search should continue for one iteration since there's lock
- * contention on the rb tree lock.
+ * Choose next group by traversing average fragment size list of suitable
+ * order. Updates *new_cr if cr level needs an update.
  */
 static void ext4_mb_choose_next_group_cr1(struct ext4_allocation_context *ac,
 		int *new_cr, ext4_group_t *group, ext4_group_t ngroups)
 {
 	struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
-	int avg_fragment_size, best_so_far;
-	struct rb_node *node, *found;
-	struct ext4_group_info *grp;
-
-	/*
-	 * If there is contention on the lock, instead of waiting for the lock
-	 * to become available, just continue searching lineraly. We'll resume
-	 * our rb tree search later starting at ac->ac_last_optimal_group.
-	 */
-	if (!read_trylock(&sbi->s_mb_rb_lock)) {
-		ac->ac_flags |= EXT4_MB_SEARCH_NEXT_LINEAR;
-		return;
-	}
+	struct ext4_group_info *grp, *iter;
+	int i;
 
 	if (unlikely(ac->ac_flags & EXT4_MB_CR1_OPTIMIZED)) {
 		if (sbi->s_mb_stats)
 			atomic_inc(&sbi->s_bal_cr1_bad_suggestions);
-		/* We have found something at CR 1 in the past */
-		grp = ext4_get_group_info(ac->ac_sb, ac->ac_last_optimal_group);
-		for (found = rb_next(&grp->bb_avg_fragment_size_rb); found != NULL;
-		     found = rb_next(found)) {
-			grp = rb_entry(found, struct ext4_group_info,
-				       bb_avg_fragment_size_rb);
+	}
+
+	for (i = mb_avg_fragment_size_order(ac->ac_sb, ac->ac_g_ex.fe_len);
+	     i < MB_NUM_ORDERS(ac->ac_sb); i++) {
+		if (list_empty(&sbi->s_mb_avg_fragment_size[i]))
+			continue;
+		read_lock(&sbi->s_mb_avg_fragment_size_locks[i]);
+		if (list_empty(&sbi->s_mb_avg_fragment_size[i])) {
+			read_unlock(&sbi->s_mb_avg_fragment_size_locks[i]);
+			continue;
+		}
+		grp = NULL;
+		list_for_each_entry(iter, &sbi->s_mb_avg_fragment_size[i],
+				    bb_avg_fragment_size_node) {
 			if (sbi->s_mb_stats)
 				atomic64_inc(&sbi->s_bal_cX_groups_considered[1]);
-			if (likely(ext4_mb_good_group(ac, grp->bb_group, 1)))
+			if (likely(ext4_mb_good_group(ac, iter->bb_group, 1))) {
+				grp = iter;
 				break;
-		}
-		goto done;
-	}
-
-	node = sbi->s_mb_avg_fragment_size_root.rb_node;
-	best_so_far = 0;
-	found = NULL;
-
-	while (node) {
-		grp = rb_entry(node, struct ext4_group_info,
-			       bb_avg_fragment_size_rb);
-		avg_fragment_size = 0;
-		if (ext4_mb_good_group(ac, grp->bb_group, 1)) {
-			avg_fragment_size = grp->bb_fragments ?
-				grp->bb_free / grp->bb_fragments : 0;
-			if (!best_so_far || avg_fragment_size < best_so_far) {
-				best_so_far = avg_fragment_size;
-				found = node;
 			}
 		}
-		if (avg_fragment_size > ac->ac_g_ex.fe_len)
-			node = node->rb_right;
-		else
-			node = node->rb_left;
+		read_unlock(&sbi->s_mb_avg_fragment_size_locks[i]);
+		if (grp)
+			break;
 	}
 
-done:
-	if (found) {
-		grp = rb_entry(found, struct ext4_group_info,
-			       bb_avg_fragment_size_rb);
+	if (grp) {
 		*group = grp->bb_group;
 		ac->ac_flags |= EXT4_MB_CR1_OPTIMIZED;
 	} else {
 		*new_cr = 2;
 	}
-
-	read_unlock(&sbi->s_mb_rb_lock);
-	ac->ac_last_optimal_group = *group;
 }
 
 static inline int should_optimize_scan(struct ext4_allocation_context *ac)
@@ -1017,11 +976,6 @@ next_linear_group(struct ext4_allocation
 		goto inc_and_return;
 	}
 
-	if (ac->ac_flags & EXT4_MB_SEARCH_NEXT_LINEAR) {
-		ac->ac_flags &= ~EXT4_MB_SEARCH_NEXT_LINEAR;
-		goto inc_and_return;
-	}
-
 	return group;
 inc_and_return:
 	/*
@@ -1152,13 +1106,13 @@ void ext4_mb_generate_buddy(struct super
 					EXT4_GROUP_INFO_BBITMAP_CORRUPT);
 	}
 	mb_set_largest_free_order(sb, grp);
+	mb_update_avg_fragment_size(sb, grp);
 
 	clear_bit(EXT4_GROUP_INFO_NEED_INIT_BIT, &(grp->bb_state));
 
 	period = get_cycles() - period;
 	atomic_inc(&sbi->s_mb_buddies_generated);
 	atomic64_add(period, &sbi->s_mb_generation_time);
-	mb_update_avg_fragment_size(sb, grp);
 }
 
 /* The buddy information is attached the buddy cache inode
@@ -2705,7 +2659,6 @@ repeat:
 		 * from the goal value specified
 		 */
 		group = ac->ac_g_ex.fe_group;
-		ac->ac_last_optimal_group = group;
 		ac->ac_groups_linear_remaining = sbi->s_mb_max_linear_groups;
 		prefetch_grp = group;
 
@@ -2987,9 +2940,7 @@ __acquires(&EXT4_SB(sb)->s_mb_rb_lock)
 	struct super_block *sb = pde_data(file_inode(seq->file));
 	unsigned long position;
 
-	read_lock(&EXT4_SB(sb)->s_mb_rb_lock);
-
-	if (*pos < 0 || *pos >= MB_NUM_ORDERS(sb) + 1)
+	if (*pos < 0 || *pos >= 2*MB_NUM_ORDERS(sb))
 		return NULL;
 	position = *pos + 1;
 	return (void *) ((unsigned long) position);
@@ -3001,7 +2952,7 @@ static void *ext4_mb_seq_structs_summary
 	unsigned long position;
 
 	++*pos;
-	if (*pos < 0 || *pos >= MB_NUM_ORDERS(sb) + 1)
+	if (*pos < 0 || *pos >= 2*MB_NUM_ORDERS(sb))
 		return NULL;
 	position = *pos + 1;
 	return (void *) ((unsigned long) position);
@@ -3013,29 +2964,22 @@ static int ext4_mb_seq_structs_summary_s
 	struct ext4_sb_info *sbi = EXT4_SB(sb);
 	unsigned long position = ((unsigned long) v);
 	struct ext4_group_info *grp;
-	struct rb_node *n;
-	unsigned int count, min, max;
+	unsigned int count;
 
 	position--;
 	if (position >= MB_NUM_ORDERS(sb)) {
-		seq_puts(seq, "fragment_size_tree:\n");
-		n = rb_first(&sbi->s_mb_avg_fragment_size_root);
-		if (!n) {
-			seq_puts(seq, "\ttree_min: 0\n\ttree_max: 0\n\ttree_nodes: 0\n");
-			return 0;
-		}
-		grp = rb_entry(n, struct ext4_group_info, bb_avg_fragment_size_rb);
-		min = grp->bb_fragments ? grp->bb_free / grp->bb_fragments : 0;
-		count = 1;
-		while (rb_next(n)) {
-			count++;
-			n = rb_next(n);
-		}
-		grp = rb_entry(n, struct ext4_group_info, bb_avg_fragment_size_rb);
-		max = grp->bb_fragments ? grp->bb_free / grp->bb_fragments : 0;
+		position -= MB_NUM_ORDERS(sb);
+		if (position == 0)
+			seq_puts(seq, "avg_fragment_size_lists:\n");
 
-		seq_printf(seq, "\ttree_min: %u\n\ttree_max: %u\n\ttree_nodes: %u\n",
-			   min, max, count);
+		count = 0;
+		read_lock(&sbi->s_mb_avg_fragment_size_locks[position]);
+		list_for_each_entry(grp, &sbi->s_mb_avg_fragment_size[position],
+				    bb_avg_fragment_size_node)
+			count++;
+		read_unlock(&sbi->s_mb_avg_fragment_size_locks[position]);
+		seq_printf(seq, "\tlist_order_%u_groups: %u\n",
+					(unsigned int)position, count);
 		return 0;
 	}
 
@@ -3045,9 +2989,11 @@ static int ext4_mb_seq_structs_summary_s
 		seq_puts(seq, "max_free_order_lists:\n");
 	}
 	count = 0;
+	read_lock(&sbi->s_mb_largest_free_orders_locks[position]);
 	list_for_each_entry(grp, &sbi->s_mb_largest_free_orders[position],
 			    bb_largest_free_order_node)
 		count++;
+	read_unlock(&sbi->s_mb_largest_free_orders_locks[position]);
 	seq_printf(seq, "\tlist_order_%u_groups: %u\n",
 		   (unsigned int)position, count);
 
@@ -3055,11 +3001,7 @@ static int ext4_mb_seq_structs_summary_s
 }
 
 static void ext4_mb_seq_structs_summary_stop(struct seq_file *seq, void *v)
-__releases(&EXT4_SB(sb)->s_mb_rb_lock)
 {
-	struct super_block *sb = pde_data(file_inode(seq->file));
-
-	read_unlock(&EXT4_SB(sb)->s_mb_rb_lock);
 }
 
 const struct seq_operations ext4_mb_seq_structs_summary_ops = {
@@ -3172,8 +3114,9 @@ int ext4_mb_add_groupinfo(struct super_b
 	init_rwsem(&meta_group_info[i]->alloc_sem);
 	meta_group_info[i]->bb_free_root = RB_ROOT;
 	INIT_LIST_HEAD(&meta_group_info[i]->bb_largest_free_order_node);
-	RB_CLEAR_NODE(&meta_group_info[i]->bb_avg_fragment_size_rb);
+	INIT_LIST_HEAD(&meta_group_info[i]->bb_avg_fragment_size_node);
 	meta_group_info[i]->bb_largest_free_order = -1;  /* uninit */
+	meta_group_info[i]->bb_avg_fragment_size_order = -1;  /* uninit */
 	meta_group_info[i]->bb_group = group;
 
 	mb_group_bb_bitmap_alloc(sb, meta_group_info[i], group);
@@ -3422,7 +3365,24 @@ int ext4_mb_init(struct super_block *sb)
 		i++;
 	} while (i < MB_NUM_ORDERS(sb));
 
-	sbi->s_mb_avg_fragment_size_root = RB_ROOT;
+	sbi->s_mb_avg_fragment_size =
+		kmalloc_array(MB_NUM_ORDERS(sb), sizeof(struct list_head),
+			GFP_KERNEL);
+	if (!sbi->s_mb_avg_fragment_size) {
+		ret = -ENOMEM;
+		goto out;
+	}
+	sbi->s_mb_avg_fragment_size_locks =
+		kmalloc_array(MB_NUM_ORDERS(sb), sizeof(rwlock_t),
+			GFP_KERNEL);
+	if (!sbi->s_mb_avg_fragment_size_locks) {
+		ret = -ENOMEM;
+		goto out;
+	}
+	for (i = 0; i < MB_NUM_ORDERS(sb); i++) {
+		INIT_LIST_HEAD(&sbi->s_mb_avg_fragment_size[i]);
+		rwlock_init(&sbi->s_mb_avg_fragment_size_locks[i]);
+	}
 	sbi->s_mb_largest_free_orders =
 		kmalloc_array(MB_NUM_ORDERS(sb), sizeof(struct list_head),
 			GFP_KERNEL);
@@ -3441,7 +3401,6 @@ int ext4_mb_init(struct super_block *sb)
 		INIT_LIST_HEAD(&sbi->s_mb_largest_free_orders[i]);
 		rwlock_init(&sbi->s_mb_largest_free_orders_locks[i]);
 	}
-	rwlock_init(&sbi->s_mb_rb_lock);
 
 	spin_lock_init(&sbi->s_md_lock);
 	sbi->s_mb_free_pending = 0;
@@ -3512,6 +3471,8 @@ out_free_locality_groups:
 	free_percpu(sbi->s_locality_groups);
 	sbi->s_locality_groups = NULL;
 out:
+	kfree(sbi->s_mb_avg_fragment_size);
+	kfree(sbi->s_mb_avg_fragment_size_locks);
 	kfree(sbi->s_mb_largest_free_orders);
 	kfree(sbi->s_mb_largest_free_orders_locks);
 	kfree(sbi->s_mb_offsets);
@@ -3578,6 +3539,8 @@ int ext4_mb_release(struct super_block *
 		kvfree(group_info);
 		rcu_read_unlock();
 	}
+	kfree(sbi->s_mb_avg_fragment_size);
+	kfree(sbi->s_mb_avg_fragment_size_locks);
 	kfree(sbi->s_mb_largest_free_orders);
 	kfree(sbi->s_mb_largest_free_orders_locks);
 	kfree(sbi->s_mb_offsets);
--- a/fs/ext4/mballoc.h
+++ b/fs/ext4/mballoc.h
@@ -178,7 +178,6 @@ struct ext4_allocation_context {
 	/* copy of the best found extent taken before preallocation efforts */
 	struct ext4_free_extent ac_f_ex;
 
-	ext4_group_t ac_last_optimal_group;
 	__u32 ac_groups_considered;
 	__u32 ac_flags;		/* allocation hints */
 	__u16 ac_groups_scanned;



  parent reply	other threads:[~2022-09-26 12:03 UTC|newest]

Thread overview: 228+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-26 10:09 [PATCH 5.19 000/207] 5.19.12-rc1 review Greg Kroah-Hartman
2022-09-26 10:09 ` [PATCH 5.19 001/207] drm/i915: Extract intel_edp_fixup_vbt_bpp() Greg Kroah-Hartman
2022-09-26 10:09 ` [PATCH 5.19 002/207] drm/i915/pps: Split pps_init_delays() into distinct parts Greg Kroah-Hartman
2022-09-26 10:09 ` [PATCH 5.19 003/207] drm/i915/bios: Split parse_driver_features() into two parts Greg Kroah-Hartman
2022-09-26 10:09 ` [PATCH 5.19 004/207] drm/i915/bios: Split VBT parsing to global vs. panel specific parts Greg Kroah-Hartman
2022-09-26 10:09 ` [PATCH 5.19 005/207] drm/i915/bios: Split VBT data into per-panel vs. global parts Greg Kroah-Hartman
2022-09-26 10:09 ` [PATCH 5.19 006/207] drm/i915/dsi: filter invalid backlight and CABC ports Greg Kroah-Hartman
2022-09-26 10:09 ` [PATCH 5.19 007/207] drm/i915/dsi: fix dual-link DSI backlight and CABC ports for display 11+ Greg Kroah-Hartman
2022-09-26 10:09 ` [PATCH 5.19 008/207] smb3: Move the flush out of smb2_copychunk_range() into its callers Greg Kroah-Hartman
2022-09-26 10:09 ` [PATCH 5.19 009/207] smb3: fix temporary data corruption in collapse range Greg Kroah-Hartman
2022-09-26 10:09 ` [PATCH 5.19 010/207] smb3: fix temporary data corruption in insert range Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 011/207] usb: add quirks for Lenovo OneLink+ Dock Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 012/207] usb: gadget: udc-xilinx: replace memcpy with memcpy_toio Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 013/207] smb3: use filemap_write_and_wait_range instead of filemap_write_and_wait Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 014/207] Revert "usb: add quirks for Lenovo OneLink+ Dock" Greg Kroah-Hartman
2022-09-27  5:23   ` Jiri Slaby
2022-09-27  5:47     ` Greg Kroah-Hartman
2022-09-27  6:18       ` Jiri Slaby
2022-09-27  6:31         ` Greg Kroah-Hartman
2022-09-28  5:54           ` Jiri Slaby
2022-09-26 10:10 ` [PATCH 5.19 015/207] Revert "usb: gadget: udc-xilinx: replace memcpy with memcpy_toio" Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 016/207] xfrm: fix XFRMA_LASTUSED comment Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 017/207] block: remove QUEUE_FLAG_DEAD Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 018/207] block: stop setting the nomerges flags in blk_cleanup_queue Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 019/207] block: simplify disk shutdown Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 020/207] scsi: core: Fix a use-after-free Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 021/207] drivers/base: Fix unsigned comparison to -1 in CPUMAP_FILE_MAX_BYTES Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 022/207] USB: core: Fix RST error in hub.c Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 023/207] USB: serial: option: add Quectel BG95 0x0203 composition Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 024/207] USB: serial: option: add Quectel RM520N Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 025/207] Revert "ALSA: usb-audio: Split endpoint setups for hw_params and prepare" Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 026/207] ALSA: core: Fix double-free at snd_card_new() Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 027/207] ALSA: hda/tegra: set depop delay for tegra Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 028/207] ALSA: hda: Fix hang at HD-audio codec unbinding due to refcount saturation Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 029/207] ALSA: hda: Fix Nvidia dp infoframe Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 030/207] ALSA: hda: add Intel 5 Series / 3400 PCI DID Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 031/207] ALSA: hda/realtek: Add quirk for Huawei WRT-WX9 Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 032/207] ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5570 laptop Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 033/207] ALSA: hda/realtek: Re-arrange quirk table entries Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 034/207] ALSA: hda/realtek: Add pincfg for ASUS G513 HP jack Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 035/207] ALSA: hda/realtek: Add pincfg for ASUS G533Z " Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 036/207] ALSA: hda/realtek: Add quirk for ASUS GA503R laptop Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 037/207] ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5530 laptop Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 038/207] ALSA: hda/realtek: Add a quirk for HP OMEN 16 (8902) mute LED Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 039/207] iommu/vt-d: Check correct capability for sagaw determination Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 040/207] exfat: fix overflow for large capacity partition Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 041/207] btrfs: fix hang during unmount when stopping block group reclaim worker Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 042/207] btrfs: fix hang during unmount when stopping a space " Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 043/207] btrfs: zoned: wait for extent buffer IOs before finishing a zone Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 044/207] libperf evlist: Fix polling of system-wide events Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 045/207] media: flexcop-usb: fix endpoint type check Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 046/207] usb: dwc3: core: leave default DMA if the controller does not support 64-bit DMA Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 047/207] thunderbolt: Add support for Intel Maple Ridge single port controller Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 048/207] efi: x86: Wipe setup_data on pure EFI boot Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 049/207] efi: libstub: check Shim mode using MokSBStateRT Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 050/207] wifi: mt76: fix reading current per-tid starting sequence number for aggregation Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 051/207] gpio: mockup: fix NULL pointer dereference when removing debugfs Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 052/207] gpio: mockup: Fix potential resource leakage when register a chip Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 053/207] gpiolib: cdev: Set lineevent_state::irq after IRQ register successfully Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 054/207] riscv: fix a nasty sigreturn bug Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 055/207] riscv: fix RISCV_ISA_SVPBMT kconfig dependency warning Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 056/207] drm/i915/gem: Flush contexts on driver release Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 057/207] drm/i915/gem: Really move i915_gem_context.link under ref protection Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 058/207] xen/xenbus: fix xenbus_setup_ring() Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 059/207] kasan: call kasan_malloc() from __kmalloc_*track_caller() Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 060/207] can: flexcan: flexcan_mailbox_read() fix return value for drop = true Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 061/207] net: mana: Add rmb after checking owner bits Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 062/207] mm/slub: fix to return errno if kmalloc() fails Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 063/207] mm: slub: fix flush_cpu_slab()/__free_slab() invocations in task context Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 064/207] KVM: x86: Reinstate kvm_vcpu_arch.guest_supported_xcr0 Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 065/207] KVM: x86: Always enable legacy FP/SSE in allowed user XFEATURES Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 066/207] KVM: x86: Inject #UD on emulated XSETBV if XSAVES isnt enabled Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 067/207] perf/arm-cmn: Add more bits to child node address offset field Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 068/207] arm64: topology: fix possible overflow in amu_fie_setup() Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 069/207] vmlinux.lds.h: CFI: Reduce alignment of jump-table to function alignment Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.19 070/207] batman-adv: Fix hang up with small MTU hard-interface Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 071/207] firmware: arm_scmi: Harden accesses to the reset domains Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 072/207] firmware: arm_scmi: Fix the asynchronous reset requests Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 073/207] arm64: dts: rockchip: Lower sd speed on quartz64-b Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 074/207] arm64: dts: rockchip: Pull up wlan wake# on Gru-Bob Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 075/207] arm64: dts: rockchip: Fix typo in lisense text for PX30.Core Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 076/207] drm/mediatek: dsi: Add atomic {destroy,duplicate}_state, reset callbacks Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 077/207] arm64: dts: imx8mm: Reverse CPLD_Dn GPIO label mapping on MX8Menlo Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 078/207] arm64: dts: rockchip: Set RK3399-Gru PCLK_EDP to 24 MHz Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 079/207] arm64: dts: imx8mn: remove GPU power domain reset Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 080/207] arm64: dts: imx8ulp: add #reset-cells for pcc Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 081/207] dmaengine: ti: k3-udma-private: Fix refcount leak bug in of_xudma_dev_get() Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 082/207] arm64: dts: rockchip: fix property for usb2 phy supply on rock-3a Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 083/207] arm64: dts: rockchip: fix property for usb2 phy supply on rk3568-evb1-v10 Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 084/207] arm64: dts: rockchip: Remove enable-active-low from rk3399-puma Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 085/207] arm64: dts: rockchip: Remove enable-active-low from rk3566-quartz64-a Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 086/207] arm64: dts: imx8mm-verdin: extend pmic voltages Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 087/207] netfilter: nf_conntrack_sip: fix ct_sip_walk_headers Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 088/207] netfilter: nf_conntrack_irc: Tighten matching on DCC message Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 089/207] netfilter: nfnetlink_osf: fix possible bogus match in nf_osf_find() Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 090/207] ice: Dont double unplug aux on peer initiated reset Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 091/207] ice: Fix crash by keep old cfg when update TCs more than queues Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 092/207] iavf: Fix cached head and tail value for iavf_get_tx_pending Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 093/207] ipvlan: Fix out-of-bound bugs caused by unset skb->mac_header Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 094/207] net: core: fix flow symmetric hash Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 095/207] wifi: iwlwifi: Mark IWLMEI as broken Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 096/207] arm64: dts: tqma8mqml: Include phy-imx8-pcie.h header Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 097/207] drm/mediatek: Fix wrong dither settings Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 098/207] arm64: dts: imx8mp-venice-gw74xx: fix CAN STBY polarity Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 099/207] arm64: dts: imx8mp-venice-gw74xx: fix ksz9477 cpu port Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 100/207] ARM: dts: lan966x: Fix the interrupt number for internal PHYs Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 101/207] net: phy: aquantia: wait for the suspend/resume operations to finish Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 102/207] arm64: dts: imx8mp-venice-gw74xx: fix port/phy validation Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 103/207] scsi: qla2xxx: Fix memory leak in __qlt_24xx_handle_abts() Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 104/207] scsi: mpt3sas: Fix return value check of dma_get_required_mask() Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 105/207] net: bonding: Share lacpdu_mcast_addr definition Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 106/207] net: bonding: Unsync device addresses on ndo_stop Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 107/207] net: team: " Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 108/207] drm/panel: simple: Fix innolux_g121i1_l01 bus_format Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 109/207] mm/slab_common: fix possible double free of kmem_cache Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 110/207] MIPS: lantiq: export clk_get_io() for lantiq_wdt.ko Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 111/207] MIPS: Loongson32: Fix PHY-mode being left unspecified Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 112/207] um: fix default console kernel parameter Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 113/207] iavf: Fix bad page state Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 114/207] mlxbf_gige: clear MDIO gateway lock after read Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 115/207] iavf: Fix set max MTU size with port VLAN and jumbo frames Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 116/207] i40e: Fix VF set max MTU size Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 117/207] i40e: Fix set max_tx_rate when it is lower than 1 Mbps Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 118/207] netdevsim: Fix hwstats debugfs file permissions Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 119/207] sfc: fix TX channel offset when using legacy interrupts Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 120/207] sfc: fix null pointer dereference in efx_hard_start_xmit Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 121/207] bnxt_en: fix flags to check for supported fw version Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 122/207] gve: Fix GFP flags when allocing pages Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 123/207] drm/hisilicon: Add depends on MMU Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 124/207] of: mdio: Add of_node_put() when breaking out of for_each_xx Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 125/207] net: ipa: properly limit modem routing table use Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 126/207] sfc/siena: fix TX channel offset when using legacy interrupts Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 127/207] sfc/siena: fix null pointer dereference in efx_hard_start_xmit Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 128/207] wireguard: ratelimiter: disable timings test by default Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 129/207] wireguard: netlink: avoid variable-sized memcpy on sockaddr Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.19 130/207] net: enetc: move enetc_set_psfp() out of the common enetc_set_features() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 131/207] net: enetc: deny offload of tc-based TSN features on VF interfaces Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 132/207] ipv6: Fix crash when IPv6 is administratively disabled Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 133/207] net/sched: taprio: avoid disabling offload when it was never enabled Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 134/207] net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child qdiscs Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 135/207] ice: config netdev tc before setting queues number Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 136/207] ice: Fix interface being down after reset with link-down-on-close flag on Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 137/207] netfilter: nf_tables: fix nft_counters_enabled underflow at nf_tables_addchain() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 138/207] netfilter: nf_tables: fix percpu memory leak " Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 139/207] netfilter: ebtables: fix memory leak when blob is malformed Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 140/207] netfilter: nf_ct_ftp: fix deadlock when nat rewrite is needed Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 141/207] net: ravb: Fix PHY state warning splat during system resume Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 142/207] net: sh_eth: " Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 143/207] gpio: tqmx86: fix uninitialized variable girq Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 144/207] can: gs_usb: gs_can_open(): fix race dev->can.state condition Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 145/207] perf stat: Fix BPF program section name Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 146/207] perf stat: Fix cpu map index in bperf cgroup code Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 147/207] perf jit: Include program header in ELF files Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 148/207] perf kcore_copy: Do not check /proc/modules is unchanged Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 149/207] perf tools: Honor namespace when synthesizing build-ids Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 150/207] drm/mediatek: dsi: Move mtk_dsi_stop() call back to mtk_dsi_poweroff() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 151/207] ice: Fix ice_xdp_xmit() when XDP TX queue number is not sufficient Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 152/207] net/smc: Stop the CLC flow if no link to map buffers on Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 153/207] net: phy: micrel: fix shared interrupt on LAN8814 Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 154/207] bonding: fix NULL deref in bond_rr_gen_slave_id Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 155/207] net: sunhme: Fix packet reception for len < RX_COPY_THRESHOLD Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 156/207] net: sched: fix possible refcount leak in tc_new_tfilter() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 157/207] bnxt: prevent skb UAF after handing over to PTP worker Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 158/207] selftests: forwarding: add shebang for sch_red.sh Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 159/207] io_uring: ensure that cached task references are always put on exit Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 160/207] serial: fsl_lpuart: Reset prior to registration Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 161/207] serial: Create uart_xmit_advance() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 162/207] serial: tegra: Use uart_xmit_advance(), fixes icount.tx accounting Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 163/207] serial: tegra-tcu: " Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 164/207] cgroup: cgroup_get_from_id() must check the looked-up kn is a directory Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 165/207] phy: marvell: phy-mvebu-a3700-comphy: Remove broken reset support Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 166/207] s390/dasd: fix Oops in dasd_alias_get_start_dev due to missing pavgroup Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 167/207] drm/i915/display: Fix handling of enable_psr parameter Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 168/207] blk-mq: fix error handling in __blk_mq_alloc_disk Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 169/207] block: call blk_mq_exit_queue from disk_release for never added disks Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 170/207] block: Do not call blk_put_queue() if gendisk allocation fails Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 171/207] Drivers: hv: Never allocate anything besides framebuffer from framebuffer memory region Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 172/207] drm/gma500: Fix BUG: sleeping function called from invalid context errors Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 173/207] drm/gma500: Fix WARN_ON(lock->magic != lock) error Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 174/207] drm/gma500: Fix (vblank) IRQs not working after suspend/resume Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 175/207] gpio: ixp4xx: Make irqchip immutable Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 176/207] drm/amd/pm: disable BACO entry/exit completely on several sienna cichlid cards Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 177/207] drm/amdgpu: use dirty framebuffer helper Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 178/207] drm/amdgpu: change the alignment size of TMR BO to 1M Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 179/207] drm/amdgpu: add HDP remap functionality to nbio 7.7 Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 180/207] drm/amdgpu: Skip reset error status for psp v13_0_0 Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 181/207] drm/amd/display: Limit user regamma to a valid value Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 182/207] drm/amd/display: Reduce number of arguments of dml31s CalculateWatermarksAndDRAMSpeedChangeSupport() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 183/207] drm/amd/display: Reduce number of arguments of dml31s CalculateFlipSchedule() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 184/207] drm/amd/display: Mark dml30s UseMinimumDCFCLK() as noinline for stack usage Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 185/207] drm/rockchip: Fix return type of cdn_dp_connector_mode_valid Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 186/207] gpio: mt7621: Make the irqchip immutable Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 187/207] pmem: fix a name collision Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 188/207] fsdax: Fix infinite loop in dax_iomap_rw() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 189/207] workqueue: dont skip lockdep work dependency in cancel_work_sync() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.19 190/207] i2c: imx: If pm_runtime_get_sync() returned 1 device access is possible Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 191/207] i2c: mlxbf: incorrect base address passed during io write Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 192/207] i2c: mlxbf: prevent stack overflow in mlxbf_i2c_smbus_start_transaction() Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 193/207] i2c: mlxbf: Fix frequency calculation Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 194/207] i2c: mux: harden i2c_mux_alloc() against integer overflows Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 195/207] drm/amdgpu: dont register a dirty callback for non-atomic Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 196/207] certs: make system keyring depend on built-in x509 parser Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 197/207] Makefile.debug: set -g unconditional on CONFIG_DEBUG_INFO_SPLIT Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 198/207] Makefile.debug: re-enable debug info for .S files Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 199/207] devdax: Fix soft-reservation memory description Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 200/207] ext4: fix bug in extents parsing when eh_entries == 0 and eh_depth > 0 Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 201/207] ext4: limit the number of retries after discarding preallocations blocks Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 202/207] ext4: make mballoc try target group first even with mb_optimize_scan Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 203/207] ext4: avoid unnecessary spreading of allocations among groups Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 204/207] ext4: make directory inode spreading reflect flexbg size Greg Kroah-Hartman
2022-09-26 10:13 ` [PATCH 5.19 205/207] ext4: use locality group preallocation for small closed files Greg Kroah-Hartman
2022-09-26 10:13 ` Greg Kroah-Hartman [this message]
2022-09-26 10:13 ` [PATCH 5.19 207/207] Revert "block: freeze the queue earlier in del_gendisk" Greg Kroah-Hartman
2022-09-26 13:41 ` [PATCH 5.19 000/207] 5.19.12-rc1 review Holger Hoffstätte
2022-09-26 15:19 ` Fenil Jain
2022-09-26 20:48 ` Justin Forbes
2022-09-26 22:24 ` Florian Fainelli
2022-09-26 22:46 ` Shuah Khan
2022-09-26 23:15 ` Zan Aziz
2022-09-27  2:07 ` Ron Economos
2022-09-27  7:48 ` Bagas Sanjaya
2022-09-27  7:55 ` Naresh Kamboju
2022-09-27  8:19   ` Greg Kroah-Hartman
2022-09-29 15:43     ` Naresh Kamboju
2022-09-29 22:16       ` Tetsuo Handa
2022-09-27 11:07 ` Sudip Mukherjee (Codethink)
2022-09-28  1:21 ` Guenter Roeck
2022-09-28  5:14 ` Jiri Slaby

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=20220926100815.839035039@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=jack@suse.cz \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ojaswin@linux.ibm.com \
    --cc=ritesh.list@gmail.com \
    --cc=stable@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=stefan.wahren@i2se.com \
    --cc=tytso@mit.edu \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.