[LTP] [PATCH 1/1] Use real FS block size in fallocate05
Jan Stancek
jstancek@redhat.com
Fri Nov 29 17:17:28 CET 2019
----- Original Message -----
> On 11/29/19 1:01 PM, Jan Stancek wrote:
> >> + tst_res(TCONF | TTERRNO, "fallocate() not supported");
> >
> > tst_brk would make more sense here. If we fail here we can end the test.
>
> No. tst_brk() will terminate the whole test on the first usual test case
> (Ext2) and skip all the other file systems that do support fallocate().
It shouldn't. tst_brk() does call exit() for test process, but
.all_filesystems spawns new process for each fs.
If I add:
tst_brk(TCONF, "STOP");
to run(), I get STOP for each fs:
$ sudo ./fallocate05 2>&1 | grep STOP
fallocate05.c:30: CONF: STOP
fallocate05.c:30: CONF: STOP
fallocate05.c:30: CONF: STOP
fallocate05.c:30: CONF: STOP
fallocate05.c:30: CONF: STOP
fallocate05.c:30: CONF: STOP
>
> > I don't understand why there is need to find minimum value that can
> > satisfy this check. It looks like we are testing tst_fill_fs() more
> > than fallocate().
> >
> > In other words, what is wrong with current test? Is the problem that
> > FALLOCATE_SIZE (1M) is not aligned on all platforms? Or is the test
> > invalid with FALLOCATE_SIZE that big? Or both?
>
> I don't like to blindly rely on the assumption that block size is always
> a power of 2 and smaller than some magic number. Getting the real block
> size is trivial. The only real question is how many free blocks do we
> allow on a "full" file system in our tests. 1MB is just 16 blocks on
> PPC64 so the magic number isn't particularly big anyway.
OK, let's assume 16 is enough. Can we use that value also for ENOSPC check?
TEST(fallocate(fd, 0, bufsize, 2 * statbuf.st_blksize));
More information about the ltp
mailing list