Re: [f2fs-dev] [PATCH] f2fs: subtract current_reserved_blocks from total

From: Daeho Jeong
Date: Wed Mar 05 2025 - 11:03:33 EST


On Wed, Mar 5, 2025 at 6:35 AM Jaegeuk Kim <jaegeuk@xxxxxxxxxx> wrote:
>
> On 03/05, Chao Yu wrote:
> > On 3/5/25 03:20, Daeho Jeong wrote:
> > > From: Daeho Jeong <daehojeong@xxxxxxxxxx>
> > >
> > > current_reserved_blocks is not allowed to utilize. For some zoned
> > > storage devices, vendors will provide extra space which was used for
> > > device level GC than specs and we will use this space for filesystem
> > > level GC. This extra space should not be shown to users, otherwise,
> > > users will see not standardized size number like 530GB, not 512GB.
> >
> > Hi Daeho,
> >
> > However, if there are other users e.g. oem or vendor want to use
> > reserved_blocks and current_reserved_blocks sysfs interface to
> > reserve space, then, total size will be less than 512GB?
> >
> > What do you think of adding a new variable to indicate reserved
> > space for zoned storage case only?
>
> Or, adding a sysfs entry like "carve_out" to determine this?

Good points. Thanks, guys.

>
> >
> > Thanks,
> >
> > >
> > > Signed-off-by: Daeho Jeong <daehojeong@xxxxxxxxxx>
> > > ---
> > > fs/f2fs/super.c | 3 +--
> > > 1 file changed, 1 insertion(+), 2 deletions(-)
> > >
> > > diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
> > > index 19b67828ae32..c346dcc2518a 100644
> > > --- a/fs/f2fs/super.c
> > > +++ b/fs/f2fs/super.c
> > > @@ -1833,10 +1833,9 @@ static int f2fs_statfs(struct dentry *dentry, struct kstatfs *buf)
> > > buf->f_type = F2FS_SUPER_MAGIC;
> > > buf->f_bsize = sbi->blocksize;
> > >
> > > - buf->f_blocks = total_count - start_count;
> > > -
> > > spin_lock(&sbi->stat_lock);
> > >
> > > + buf->f_blocks = total_count - start_count - sbi->current_reserved_blocks;
> > > user_block_count = sbi->user_block_count;
> > > total_valid_node_count = valid_node_count(sbi);
> > > avail_node_count = sbi->total_node_count - F2FS_RESERVED_NODE_NUM;
> >