| From 8b107f5b97772c7c0c218302e9a4d15b4edf50b4 Mon Sep 17 00:00:00 2001 |
| From: Jaegeuk Kim <jaegeuk@kernel.org> |
| Date: Mon, 27 Feb 2017 11:57:11 -0800 |
| Subject: f2fs: avoid to issue redundant discard commands |
| |
| From: Jaegeuk Kim <jaegeuk@kernel.org> |
| |
| commit 8b107f5b97772c7c0c218302e9a4d15b4edf50b4 upstream. |
| |
| If segs_per_sec is over 1 like under SMR, previously f2fs issues discard |
| commands redundantly on the same section, since we didn't move end position |
| for the previous discard command. |
| |
| E.g., |
| |
| start end |
| | | |
| prefree_bitmap = [01111100111100] |
| |
| And, after issue discard for this section, |
| end start |
| | | |
| prefree_bitmap = [01111100111100] |
| |
| Select this section again by searching from (end + 1), |
| start end |
| | | |
| prefree_bitmap = [01111100111100] |
| |
| Fixes: 36abef4e796d38 ("f2fs: introduce mode=lfs mount option") |
| Cc: Damien Le Moal <damien.lemoal@wdc.com> |
| Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| fs/f2fs/segment.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/fs/f2fs/segment.c |
| +++ b/fs/f2fs/segment.c |
| @@ -935,6 +935,8 @@ next: |
| start = start_segno + sbi->segs_per_sec; |
| if (start < end) |
| goto next; |
| + else |
| + end = start - 1; |
| } |
| mutex_unlock(&dirty_i->seglist_lock); |
| |