Bug 218571

Summary: hfs: weird file system free block state after creating files and removing them with a mix of i/o operations
Product: File System Reporter: Colin Ian King (colin.i.king)
Component: HFS/HFSPLUSAssignee: fs_hfs (fs_hfs)
Status: NEW ---    
Severity: normal    
Priority: P3    
Hardware: All   
OS: Linux   
Kernel Version: Subsystem:
Regression: No Bisected commit-id:

Description Colin Ian King 2024-03-07 13:11:58 UTC
Summary:

create hfs file system, loop-back mount it, run iomix stessor with stress-ng to exercise with a mix of file I/O operations and remove files at end. File system is empty but a lot of blocks are used and can't seem to be recovered.

Kernel: 6.8.0-11-generic

test case:
sudo apt-get install hfsprogs

dd if=/dev/zero of=fs.img bs=1M count=2048
mkfs.hfs fs.img
sudo mount fs.img /mnt
sudo mkdir /mnt/x
df /mnt
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/loop6 2097128 2015 2095113 1% /mnt

sudo stress-ng --temp-path /mnt/x --iomix 1 -t 2

df /mnt
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/loop6 2097128 674635 1422493 33% /mnt

ls -alR /mnt/
/mnt/:
total 4
drwxr-xr-x 1 root root 3 Mar 7 12:37 .
drwxr-xr-x 23 root root 4096 Feb 28 14:13 ..
drwxr-xr-x 1 root root 2 Mar 7 12:37 x

/mnt/x:
total 0
drwxr-xr-x 1 root root 2 Mar 7 12:37 .
drwxr-xr-x 1 root root 3 Mar 7 12:37 ..

..so file system is 33% full, but no files are on the file system. Something looks wrong here.