My eMMC partition is ext4 formatted and has about 100MB size. df -h command lists the size of the partition and the used percentage as below. Filesystem Size Used Avail Use% Mounted on /dev/mmcblk2p4 16Z 16Z 79M 100% /data For your reference, the returned values for statfs64( ) are statfs64("/data", 88, {f_type="EXT2_SUPER_MAGIC", f_bsize=1024, f_blocks=18446744073659310077, f_bfree=87628, f_bavail=80460, f_files=25688, f_ffree=25189, f_fsid={-1446355608, 1063639410}, f_namelen=255, f_frsize=1024, f_flags=4128}) = 0 The output dumpe2fs returns the following Block count: 102400 Reserved block count: 5120 Overhead blocks: 50343939 As per my kernel (4.9.31) code, the f_blocks is block_count - overhead blocks. Considering the subtraction with the above values results in a negative value this is interpreted as the huge value of 18446744073659310077. I have a script which monitors the used percentage of the partition using df -h command and when the used percentage is greater than 70%, it deletes files until the used percentage comes down. Considering df is reporting all the time 100% usage, all my files get deleted. My questions are: a) Where does overhead blocks get set? b) Why is this value huge for my partition and how to correct it considering fsck is also not correcting this Please note fsck on this partition doesn't report any issues at all. I am also able to create files in this partition.