On 04/04/11 10:08, Jim Meyering wrote:
> P?draig Brady wrote:
>> On 04/04/11 06:13, Jim Meyering wrote:
>>> From: Jim Meyering <[email protected]>
>>>
>>> Running the new fiemap-empty test uses 600MB of disk space via
>>> fallocate, and in so doing caused failure in unrelated tests that
>>> were running in parallel on a small file system. Rather than
>>> simply running fallocate (which allocates the space, inducing
>>> disk full when it fails), skip the test if there is less than
>>> 800MB of free space, as computed via stat and awk.
>
> Thanks for looking.
>
>> Oops sorry.
>> Maybe worth noting is that stat works at a lower level,
>
> Not sure what you mean? Both use statfs.
Oops right. df uses f_bavail, so perhaps it might
be better to use %a rather than %f with `stat`?
This fallocate() behavior is annoying anyway,
as I'm not sure when it's useful, except for
filling up a file system.
It seems like a this would be useful.
#define FALLOC_FL_FULL_SIZE 0x03 /* allocate all or nothing */
cheers,
P?draig.
P?draig Brady wrote:
> On 04/04/11 10:08, Jim Meyering wrote:
>> P?draig Brady wrote:
>>> On 04/04/11 06:13, Jim Meyering wrote:
>>>> From: Jim Meyering <[email protected]>
>>>>
>>>> Running the new fiemap-empty test uses 600MB of disk space via
>>>> fallocate, and in so doing caused failure in unrelated tests that
>>>> were running in parallel on a small file system. Rather than
>>>> simply running fallocate (which allocates the space, inducing
>>>> disk full when it fails), skip the test if there is less than
>>>> 800MB of free space, as computed via stat and awk.
>>
>> Thanks for looking.
>>
>>> Oops sorry.
>>> Maybe worth noting is that stat works at a lower level,
>>
>> Not sure what you mean? Both use statfs.
>
> Oops right. df uses f_bavail, so perhaps it might
> be better to use %a rather than %f with `stat`?
Oh, yes. Definitely.
I had thought I was using that one,
but had skimmed the descriptions too quickly (I spotted "superuser"
in the description of %a, so went with %f ;-).
Thanks!
I may adjust stat --help's description of %f to say this:
%a Free blocks available to non-superuser
%f Free blocks in file system (available to superuser)
> This fallocate() behavior is annoying anyway,
> as I'm not sure when it's useful, except for
> filling up a file system.
> It seems like a this would be useful.
>
> #define FALLOC_FL_FULL_SIZE 0x03 /* allocate all or nothing */
Good idea.
I read fallocate's manual looking for a command-line option
like that when I realized that its behavior was at the root
of my non-deterministic test failures.
Sounds like it'd make a good new option, if not the default.