New: ext4: delalloc space accounting problem drops data
A message that is not in the archive (sent off-list or not yet received): [email protected]/
Quoted 65 lines · On Thu, 8 Nov 2007 09:42:10 -0800 (PST) [email protected] wrote:
http://bugzilla.kernel.org/show_bug.cgi?id=9329
Summary: ext4: delalloc space accounting problem drops data
Product: File System
Version: 2.5
KernelVersion: 2.6.24-rc1
Platform: All
OS/Version: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: ext4
AssignedTo: [email protected]
ReportedBy: [email protected]2.6.24-rc1 + ext4 git patch queue from last week or so.
It appears that delalloc does not track used space properly, and fails to return ENOSPC as appropriate:
[root@bear-05 ~]# mkfs.ext3 -I 256
/dev/sdb732768
[root@bear-05 ~]# mount -t ext4dev -o data=writeback,delalloc,extents,mballoc/dev/sdb7/mnt/test
[root@bear-05 ~]# df -h/mnt/test
Filesystem Size Used Avail Use% Mounted on/dev/sdb730M 4.5M 24M 16%/mnt/test
[root@bear-05 ~]# du -h/tmp/1Mfile
1.1M/tmp/1Mfile
[root@bear-05 ~]# for I inseq 1 50; do cp/tmp/1Mfile/mnt/test/1Mfile-$I; done
[root@bear-05 ~]# df -h/mnt/test
Filesystem Size Used Avail Use% Mounted on/dev/sdb730M 30M 0 100%/mnt/testall resulting files are 1M in length:
[root@bear-05 ~]# ls -l/mnt/test/1M*| grep -v 1048576 [root@bear-05 ~]# ls -l/mnt/test/1M*| grep 1048576 | wc -l 50
but many of them have silently dropped data on the floor:
[root@bear-05 ~]# du -hc/mnt/test/1Mfile-*| grep -v "1.0M"596K /mnt/test/1Mfile-26 0 /mnt/test/1Mfile-27 0 /mnt/test/1Mfile-28 0 /mnt/test/1Mfile-29 0 /mnt/test/1Mfile-30<snip>
When mounted with nodelalloc, I get proper behavior:
[root@bear-05 ~]# for I in
seq 1 50; do cp/tmp/1Mfile/mnt/test/1Mfile-$I; done
cp: writing `/mnt/test/1Mfile-26': No space left on device
cp: writing `/mnt/test/1Mfile-27': No space left on device
cp: writing `/mnt/test/1Mfile-28': No space left on device
cp: writing `/mnt/test/1Mfile-29': No space left on device
<snip>Signature · 3 lines
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.