Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 244f4fc1 authored by Jaegeuk Kim's avatar Jaegeuk Kim
Browse files

f2fs: set cached_en after checking finally



This patch relocates cached_en not only to be covered by spin_lock, but also
to set once after checking out completely.

Reviewed-by: default avatarChao Yu <chao2.yu@samsung.com>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent cbe91923
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -453,15 +453,13 @@ static struct extent_node *__lookup_extent_tree(struct extent_tree *et,
	while (node) {
		en = rb_entry(node, struct extent_node, rb_node);

		if (fofs < en->ei.fofs) {
		if (fofs < en->ei.fofs)
			node = node->rb_left;
		} else if (fofs >= en->ei.fofs + en->ei.len) {
		else if (fofs >= en->ei.fofs + en->ei.len)
			node = node->rb_right;
		} else {
			et->cached_en = en;
		else
			return en;
	}
	}
	return NULL;
}

@@ -625,6 +623,7 @@ static bool f2fs_lookup_extent_tree(struct inode *inode, pgoff_t pgofs,
		spin_lock(&sbi->extent_lock);
		if (!list_empty(&en->list))
			list_move_tail(&en->list, &sbi->extent_list);
		et->cached_en = en;
		spin_unlock(&sbi->extent_lock);
		stat_inc_read_hit(sbi->sb);
	}