[PATCH] ROMFS: support inode blocks calculation

From: Libing Zhou
Date: Sun Aug 09 2020 - 22:09:56 EST


When use 'stat' tool to display file status, the 'Blocks' field
always in '0', this is not good for tool 'du'(e.g.: busybox 'du'),
it always output '0' size for the files under ROMFS since such
tool calculates number of 512B Blocks.

This patch calculates approx. number of 512B blocks based on inode
size.

Signed-off-by: Libing Zhou <libing.zhou@xxxxxxxxxxxxxxx>
---
fs/romfs/super.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/fs/romfs/super.c b/fs/romfs/super.c
index e582d001f792..b1b7d3f5752f 100644
--- a/fs/romfs/super.c
+++ b/fs/romfs/super.c
@@ -356,6 +356,7 @@ static struct inode *romfs_iget(struct super_block *sb, unsigned long pos)
}

i->i_mode = mode;
+ i->i_blocks = (i->i_size + 511) >> 9;

unlock_new_inode(i);
return i;
--
2.22.0