Blob Blame History Raw
From 5b4267d195dd887c4412e34b5a7365baa741b679 Mon Sep 17 00:00:00 2001
From: Jaegeuk Kim <jaegeuk@kernel.org>
Date: Fri, 13 Oct 2017 10:27:45 -0700
Subject: [PATCH] f2fs: expose some sectors to user in inline data or dentry
 case
Git-commit: 5b4267d195dd887c4412e34b5a7365baa741b679
Patch-mainline: v4.15-rc1
References: bsc#1052766

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.

Cc: stable@vger.kernel.org
Reviewed-by: Chao Yu <yuchao0@huawei.com>
[Jaegeuk Kim: avoid link file for quotacheck]

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Acked-by: Jan Kara <jack@suse.cz>

---
 fs/f2fs/file.c |    6 ++++++
 1 file changed, 6 insertions(+)

--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -638,6 +638,12 @@ int f2fs_getattr(const struct path *path
 	struct inode *inode = d_inode(path->dentry);
 	generic_fillattr(inode, stat);
 	stat->blocks <<= 3;
+
+	/* 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;
 }