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 <jaeg...@kernel.org>
> >>
> >> Reviewed-by: Chao Yu <yuch...@huawei.com>
> >>
> >> 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;
> >>>  }
> >>>  
> >>>
> > 
> > .
> > 

Reply via email to