FAILED: patch "[PATCH] f2fs: factor out discard_cmd usage from general rb_tree use" failed to apply to 5.4-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.4.y
git checkout FETCH_HEAD
git cherry-pick -x f69475dd4878e5f2e316a6573044d55f294baa51
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2023051350-excusably-paragraph-c575@gregkh' --subject-prefix 'PATCH 5.4.y' HEAD^..
Possible dependencies:
f69475dd4878 ("f2fs: factor out discard_cmd usage from general rb_tree use")043d2d00b443 ("f2fs: factor out victim_entry usage from general rb_tree use")269d11948100 ("f2fs: fix to do sanity check on extent cache correctly")d48a7b3a72f1 ("f2fs: fix to do sanity check on extent cache correctly")185a453bf1b5 ("f2fs: deliver the accumulated 'issued' to __issue_discard_cmd_orderly()") 72840cccc0a1 ("f2fs: allocate the extent_cache by default")e7547daccd6a ("f2fs: refactor extent_cache to support for read and more")749d543c0d45 ("f2fs: remove unnecessary __init_extent_tree")3bac20a8f011 ("f2fs: move internal functions into extent_cache.c")12607c1ba763 ("f2fs: specify extent cache for read explicitly")c46867e9b9b8 ("f2fs: introduce max_ordered_discard sysfs node")b5f1a218ae5e ("f2fs: fix normal discard process")a251c17aa558 ("treewide: use get_random_u32() when possible")5d170fe435e5 ("Merge tag 'f2fs-for-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From f69475dd4878e5f2e316a6573044d55f294baa51 Mon Sep 17 00:00:00 2001
From: Jaegeuk Kim <[email protected]>
Date: Fri, 10 Mar 2023 11:12:35 -0800
Subject: [PATCH] f2fs: factor out discard_cmd usage from general rb_tree use
This is a second part to remove the mixed use of rb_tree in discard_cmd from extent_cache.
This should also fix arm32 memory alignment issue caused by shared rb_entry.
[struct discard_cmd] [struct rb_entry]
[0] struct rb_node rb_node; [0] struct rb_node rb_node;
union { union {
struct { struct {
[16] block_t lstart; [12] unsigned int ofs;
block_t len; unsigned int len;
};
unsigned long long key;
} __packed;fs/f2fs/extent_cache.c +3 -33
@@ -192,7 +192,7 @@ static struct rb_entry *__lookup_rb_tree_slow(struct rb_root_cached *root,return NULL ; } -struct rb_entry *f2fs_lookup_rb_tree (struct rb_root_cached *root, +static struct rb_entry *f2fs_lookup_rb_tree (struct rb_root_cached *root,struct rb_entry *cached_re,unsigned int ofs) {struct rb_entry *re;
@@ -204,7 +204,7 @@ struct rb_entry *f2fs_lookup_rb_tree(struct rb_root_cached *root,return re; } -struct rb_node **f2fs_lookup_rb_tree_for_insert (struct f2fs_sb_info *sbi, +static struct rb_node **f2fs_lookup_rb_tree_for_insert (struct f2fs_sb_info *sbi,struct rb_root_cached *root,struct rb_node **parent,unsigned int ofs,bool *leftmost)
@@ -238,7 +238,7 @@ struct rb_node **f2fs_lookup_rb_tree_for_insert(struct f2fs_sb_info *sbi,* in order to simplify the insertion after. * tree must stay unchanged between lookup and insertion. */ -struct rb_entry *f2fs_lookup_rb_tree_ret(struct rb_root_cached *root, +static struct rb_entry *f2fs_lookup_rb_tree_ret(struct rb_root_cached *root, struct rb_entry *cached_re, unsigned int ofs, struct rb_entry **prev_entry,
@@ -311,36 +311,6 @@ struct rb_entry *f2fs_lookup_rb_tree_ret(struct rb_root_cached *root,return re; } -bool f2fs_check_rb_tree_consistence (struct f2fs_sb_info *sbi, -struct rb_root_cached *root) -{ -#ifdef CONFIG_F2FS_CHECK_FS -struct rb_node *cur =rb_first_cached (root), *next; -struct rb_entry *cur_re, *next_re; - -if (!cur) -return true; - -while (cur) { - next =rb_next (cur); -if (!next) -return true; - - cur_re = rb_entry(cur, struct rb_entry, rb_node); - next_re = rb_entry(next, struct rb_entry, rb_node); - -if (cur_re->ofs + cur_re->len > next_re->ofs) { -f2fs_info (sbi,"inconsistent rbtree, cur(%u, %u) next(%u, %u)" , - cur_re->ofs, cur_re->len, - next_re->ofs, next_re->len); -return false; - } - cur = next; - } -#endif -return true; -} -static struct kmem_cache *extent_tree_slab;static struct kmem_cache *extent_node_slab;
fs/f2fs/f2fs.h +1 -22
@@ -353,15 +353,7 @@ struct discard_info {struct discard_cmd {struct rb_node rb_node;/* rb node located in rb-tree */ -union { -struct { -block_t lstart;/* logical start address */ -block_t len;/* length */ -block_t start;/* actual start address in dev */ - }; -struct discard_info di;/* discard info */ - - }; +struct discard_info di;/* discard info */ struct list_head list;/* command list */ struct completion wait;/* compleation */ struct block_device *bdev;/* bdev */
@@ -4132,19 +4124,6 @@ void f2fs_leave_shrinker(struct f2fs_sb_info *sbi);* extent_cache.c */ bool sanity_check_extent_cache (struct inode *inode); -struct rb_entry *f2fs_lookup_rb_tree (struct rb_root_cached *root, -struct rb_entry *cached_re,unsigned int ofs); -struct rb_node **f2fs_lookup_rb_tree_for_insert (struct f2fs_sb_info *sbi, -struct rb_root_cached *root, -struct rb_node **parent, -unsigned int ofs,bool *leftmost); -struct rb_entry *f2fs_lookup_rb_tree_ret (struct rb_root_cached *root, -struct rb_entry *cached_re,unsigned int ofs, -struct rb_entry **prev_entry,struct rb_entry **next_entry, -struct rb_node ***insert_p,struct rb_node **insert_parent, -bool force,bool *leftmost); -bool f2fs_check_rb_tree_consistence (struct f2fs_sb_info *sbi, -struct rb_root_cached *root);void f2fs_init_extent_tree (struct inode *inode);void f2fs_drop_extent_tree (struct inode *inode);void f2fs_destroy_extent_node (struct inode *inode);
fs/f2fs/segment.c +165 -84
433 lines not on this page · raw message