mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
FROMGIT: f2fs v2: factor out discard_cmd usage from general rb_tree use
I found a bug in the previous version and this patch fixes the gap from
upstream version.
Fixes: fcc385fd44 ("FROMGIT: f2fs: factor out discard_cmd usage from general rb_tree use")
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
(cherry picked from commit e39836183be8
https: //git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git dev)
Change-Id: I4dbfb9f1f2cc956685a7c4de5fcfbba705c30cfb
This commit is contained in:
@@ -1395,6 +1395,7 @@ static void __update_discard_tree_range(struct f2fs_sb_info *sbi,
|
||||
|
||||
while (1) {
|
||||
struct rb_node *node;
|
||||
bool merged = false;
|
||||
struct discard_cmd *tdc = NULL;
|
||||
|
||||
if (prev_dc) {
|
||||
@@ -1423,7 +1424,7 @@ static void __update_discard_tree_range(struct f2fs_sb_info *sbi,
|
||||
__relocate_discard_cmd(dcc, prev_dc);
|
||||
di = prev_dc->di;
|
||||
tdc = prev_dc;
|
||||
goto next;
|
||||
merged = true;
|
||||
}
|
||||
|
||||
if (next_dc && next_dc->state == D_PREP &&
|
||||
@@ -1437,10 +1438,12 @@ static void __update_discard_tree_range(struct f2fs_sb_info *sbi,
|
||||
__relocate_discard_cmd(dcc, next_dc);
|
||||
if (tdc)
|
||||
__remove_discard_cmd(sbi, tdc);
|
||||
goto next;
|
||||
merged = true;
|
||||
}
|
||||
|
||||
__insert_discard_cmd(sbi, bdev, di.lstart, di.start, di.len);
|
||||
if (!merged)
|
||||
__insert_discard_cmd(sbi, bdev,
|
||||
di.lstart, di.start, di.len);
|
||||
next:
|
||||
prev_dc = next_dc;
|
||||
if (!prev_dc)
|
||||
|
||||
Reference in New Issue
Block a user