Re: [PATCH] f2fs: expose some sectors to user in inline data or dentry case
From: Jaegeuk Kim
Date: Thu Oct 19 2017 - 15:12:42 EST
On 10/18, Chao Yu wrote:
> On 2017/10/18 6:03, Jaegeuk Kim wrote:
> > On 10/16, Chao Yu wrote:
> >> On 2017/10/14 1:31, Jaegeuk Kim wrote:
> >>> If there's some data written through inline data or dentry, we need to shouw
> >>> st_blocks. This fixes reporting zero blocks even though there is small written
> >>> data.
> >>>
> >>> Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
> >>
> >> Reviewed-by: Chao Yu <yuchao0@xxxxxxxxxx>
> >>
> >> Thanks,
> >>
> >>> ---
> >>> fs/f2fs/file.c | 5 +++++
> >>> 1 file changed, 5 insertions(+)
> >>>
> >>> diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
> >>> index 2eb3efe92018..f7be6c394fa8 100644
> >>> --- a/fs/f2fs/file.c
> >>> +++ b/fs/f2fs/file.c
> >>> @@ -698,6 +698,11 @@ int f2fs_getattr(const struct path *path, struct kstat *stat,
> >>> STATX_ATTR_NODUMP);
> >>>
> >>> generic_fillattr(inode, stat);
> >>> +
> >>> + /* we need to show initial sectors used for inline_data/dentries */
> >>> + if (f2fs_has_inline_data(inode) || f2fs_has_inline_dentry(inode))
> >
> > FYI;
> > I added S_ISREG(inode->i_mode) with f2fs_has_inline_data() to avoid quotacheck
> > error.
>
> If this patch is related to quotacheck issue, I doubt that there will be
> problemetic, in no journalled quota case, fs quota system won't stat blocks
> in inline file, however, after SPO, when using quotacheck to scan file to
> recover quota info, blocks of inline file showed in getattr can be stated
> into quota. That would be inconsistent.
FWIW, quotacheck counts i_blocks via ioctl for normal files. Without this
modification, xfstests gives an failure on quota cases.
>
> Thanks,
>
> >
> >>> + stat->blocks += (stat->size + 511) >> 9;
> >>> +
> >>> return 0;
> >>> }
> >>>
> >>>
> >
> > .
> >