Reviewed-by: Daeho Jeong <daehoje...@google.com> On Fri, Feb 23, 2024 at 6:02 PM Jaegeuk Kim <jaeg...@kernel.org> wrote: > > The reserved segments should be aligned to the section boundary. > > Signed-off-by: Jaegeuk Kim <jaeg...@kernel.org> > --- > > v2: > - fix bug > > include/f2fs_fs.h | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) > > diff --git a/include/f2fs_fs.h b/include/f2fs_fs.h > index 9056e02acd29..fc56396fa358 100644 > --- a/include/f2fs_fs.h > +++ b/include/f2fs_fs.h > @@ -1760,25 +1760,27 @@ extern uint32_t f2fs_get_usable_segments(struct > f2fs_super_block *sb); > #define ZONE_ALIGN(blks) SIZE_ALIGN(blks, c.blks_per_seg * \ > c.segs_per_zone) > > -static inline double get_reserved(struct f2fs_super_block *sb, double ovp) > +static inline uint32_t get_reserved(struct f2fs_super_block *sb, double ovp) > { > - double reserved; > uint32_t usable_main_segs = f2fs_get_usable_segments(sb); > uint32_t segs_per_sec = round_up(usable_main_segs, > get_sb(section_count)); > + uint32_t reserved; > > if (c.conf_reserved_sections) > reserved = c.conf_reserved_sections * segs_per_sec; > else > reserved = (100 / ovp + 1 + NR_CURSEG_TYPE) * segs_per_sec; > > - return reserved; > + /* Let's keep the section alignment */ > + return round_up(reserved, segs_per_sec) * segs_per_sec; > } > > static inline double get_best_overprovision(struct f2fs_super_block *sb) > { > - double reserved, ovp, candidate, end, diff, space; > + double ovp, candidate, end, diff, space; > double max_ovp = 0, max_space = 0; > uint32_t usable_main_segs = f2fs_get_usable_segments(sb); > + uint32_t reserved; > > if (get_sb(segment_count_main) < 256) { > candidate = 10; > @@ -1795,7 +1797,7 @@ static inline double get_best_overprovision(struct > f2fs_super_block *sb) > ovp = (usable_main_segs - reserved) * candidate / 100; > if (ovp < 0) > continue; > - space = usable_main_segs - max(reserved, ovp) - > + space = usable_main_segs - max((double)reserved, ovp) - > 2 * get_sb(segs_per_sec); > if (max_space < space) { > max_space = space; > -- > 2.44.0.rc0.258.g7320e95886-goog > > > > _______________________________________________ > Linux-f2fs-devel mailing list > Linux-f2fs-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
_______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel