On Thu, Sep 23, 2010 at 2:24 PM, Loïc Minier <loic.min...@linaro.org> wrote: > On Wed, Sep 22, 2010, Matt Waddel wrote: >> fallocate01 1 TFAIL : fallocate(5, 0, 49152, 4096) failed: >> TEST_ERRNO=EFBIG(27): File too large >> fallocate01 2 TFAIL : fallocate(6, 1, 49152, 4096) failed: >> TEST_ERRNO=EFBIG(27): File too large >> fallocate02 7 TFAIL : fallocate(tfile_write_15396:6, 1, 0, 4096) >> failed, expected errno:0: TEST_ERRNO=EFBIG(27): >> File too large >> fallocate03 1 TFAIL : fallocate(tfile_sparse_15397, 0, 8192, 4096) >> failed: TEST_ERRNO=EFBIG(27): File too large >> fallocate03 2 TFAIL : fallocate(tfile_sparse_15397, 0, 49152, 4096) >> failed: TEST_ERRNO=EFBIG(27): File too large >> fallocate03 3 TFAIL : fallocate(tfile_sparse_15397, 0, 69632, 4096) >> failed: TEST_ERRNO=EFBIG(27): File too large >> fallocate03 4 TFAIL : fallocate(tfile_sparse_15397, 0, 102400, 4096) >> failed: TEST_ERRNO=EFBIG(27): File too large >> fallocate03 5 TFAIL : fallocate(tfile_sparse_15397, 1, 8192, 4096) >> failed: TEST_ERRNO=EFBIG(27): File too large >> fallocate03 6 TFAIL : fallocate(tfile_sparse_15397, 1, 49152, 4096) >> failed: TEST_ERRNO=EFBIG(27): File too large >> fallocate03 7 TFAIL : fallocate(tfile_sparse_15397, 1, 77824, 4096) >> failed: TEST_ERRNO=EFBIG(27): File too large >> fallocate03 8 TFAIL : fallocate(tfile_sparse_15397, 1, 106496, 4096) >> failed: TEST_ERRNO=EFBIG(27): File too large > > fallocate(2) says EFBIG is returned when offset+len exceeds the maximum > file size; this would mean your fs doesn't support files that large.
Correct, but the offset+length being requested here doesn't seem to be too high (12K in some of the calls). So, its a bit surprising. BTW, which file system is it ? From last I know, fallocate was supported on only ext4, ocfs and xfs. Also, if possible a printk to print the actual values of offset and length in the kernel (in fs/open.c : do_fallocate()) might give some pointer on whats going on. So, something like : /* Check for wrap through zero too */ - if (((offset + len) > inode->i_sb->s_maxbytes) || ((offset + len) < 0)) + if (((offset + len) > inode->i_sb->s_maxbytes) || + ((offset + len) < 0)) { + printk("sys_fallocate: offset = 0x%x, length = 0x%x max FS size= 0x%x\n", + offset, len, inode->i_sb->s_maxbytes); return -EFBIG; + } If these numbers are higher than whats being passed by LTP test, then there is something wrong in how ARM is handling fallocate parameters. Else, the max file size supported by file system should be looked at (last variable in above printk). Regards, Amit Arora _______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev