Skip to contentSkip to conversation

New: ext4: delalloc space accounting problem drops data

Bugme-new Andrew Morton 1 participant 1 message Nov 8, 2007 1 message not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]/

#1 lore raw
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/sdb7 32768
[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/sdb7 30M 4.5M 24M 16% /mnt/test
[root@bear-05 ~]# du -h /tmp/1Mfile
1.1M /tmp/1Mfile
[root@bear-05 ~]# for I in seq 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/sdb7 30M 30M 0 100% /mnt/test

all 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.