f2fs: expose some sectors to user in inline data or dentry case
authorJaegeuk Kim <jaegeuk@kernel.org>
Fri, 13 Oct 2017 17:27:45 +0000 (10:27 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 Nov 2017 08:40:45 +0000 (08:40 +0000)
commit 5b4267d195dd887c4412e34b5a7365baa741b679 upstream.

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.

Reviewed-by: Chao Yu <yuchao0@huawei.com>
[Jaegeuk Kim: avoid link file for quotacheck]
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/f2fs/file.c

index 517e112c8a9a943467492435c9f15c1668e079a8..6ce4678723762adeeb75366dc853e52af1760ead 100644 (file)
@@ -683,6 +683,12 @@ 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 ((S_ISREG(inode->i_mode) && f2fs_has_inline_data(inode)) ||
+                                       f2fs_has_inline_dentry(inode))
+               stat->blocks += (stat->size + 511) >> 9;
+
        return 0;
 }