2007-11-08 18:10:03

by Andrew Morton

[permalink] [raw]
Subject: Re: [Bugme-new] [Bug 9329] New: ext4: delalloc space accounting problem drops data

> 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:
>
> [[email protected] ~]# mkfs.ext3 -I 256 /dev/sdb7 32768
> [[email protected] ~]# mount -t ext4dev -o data=writeback,delalloc,extents,mballoc
> /dev/sdb7 /mnt/test
> [[email protected] ~]# df -h /mnt/test
> Filesystem Size Used Avail Use% Mounted on
> /dev/sdb7 30M 4.5M 24M 16% /mnt/test
> [[email protected] ~]# du -h /tmp/1Mfile
> 1.1M /tmp/1Mfile
> [[email protected] ~]# for I in `seq 1 50`; do cp /tmp/1Mfile /mnt/test/1Mfile-$I;
> done
> [[email protected] ~]# 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:
> [[email protected] ~]# ls -l /mnt/test/1M* | grep -v 1048576
> [[email protected] ~]# ls -l /mnt/test/1M* | grep 1048576 | wc -l
> 50
> but many of them have silently dropped data on the floor:
> [[email protected] ~]# 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:
>
> [[email protected] ~]# 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>
>
>
> --
> 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.