[Top] [All Lists]

Re: [PATCH V2] xfstests: make 275 pass

To: Eric Sandeen <sandeen@xxxxxxxxxx>
Subject: Re: [PATCH V2] xfstests: make 275 pass
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Thu, 5 Jan 2012 10:17:25 +1100
Cc: xfs-oss <xfs@xxxxxxxxxxx>, ext4 development <linux-ext4@xxxxxxxxxxxxxxx>, Eryu Guan <eguan@xxxxxxxxxx>
In-reply-to: <4F04BC81.1000207@xxxxxxxxxx>
References: <4F04A6E6.1090304@xxxxxxxxxx> <4F04BC81.1000207@xxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Wed, Jan 04, 2012 at 02:54:25PM -0600, Eric Sandeen wrote:
> Ok, this is a significant rework of 275, which made too many
> assumptions about details of space usage and failed on several
> filesystems (it passed on xfs, but only by accident).
> This new version tries to leave about 256k free, then tries
> a single 1M IO, and fails only if 0 bytes are written.
> It also sends a lot more to $seq.full for debugging on failure
> and fixes a few other stylistic things.
> Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>

I just had another thought about this, Eric....

> +# And at least some of it should succeed.
> +_filesize=`du $SCRATCH_MNT/tmp1 | awk '{print $1}'`
> +[ $_filesize -eq 0 ] && _fail "write file err: Partial write until enospc 
> failed; wrote 0 bytes."

The question that just came to mind was this assumes that allocation
succeeded so therefore the partial write succeeded. But that's not
necessary the case. The partial write might not succeed leaving the
file size as zero, but the underlying FS might not remove all the
blocks it allocated (nothing says that it has to). Hence to
determine if a partial write succeeded, we also need to check that
the file size itself is greater than zero....


Dave Chinner

<Prev in Thread] Current Thread [Next in Thread>