Re: stat64 for over 2TB file returned invalid st_blocks

From: Andreas Dilger
Date: Fri Dec 02 2005 - 13:57:54 EST


On Dec 02, 2005 22:18 +0900, Takashi Sato wrote:
> I also found another problem on generic quota code. In
> dquot_transfer(), the file usage is calculated from i_blocks via
> inode_get_bytes(). If the file is over 2TB, the change of usage is
> less than expected.
>
> To solve this problem, I think inode.i_blocks should be 8 byte.

Actually, it should probably be "sector_t", because it isn't really
possible to have a file with more blocks than the size of the block
device. This avoids memory overhead for small systems that have no
need for it in a very highly-used struct. It may be for some network
filesystems that support gigantic non-sparse files they would need to
enable CONFIG_LBD in order to get support for this.

Cheers, Andreas
--
Andreas Dilger
Principal Software Engineer
Cluster File Systems, Inc.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/