lkml.org 
[lkml]   [2005]   [Dec]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: stat64 for over 2TB file returned invalid st_blocks
Date
Hi,

> 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.

I think sector_t is ok for local filesystem as you said. However,
on NFS, there may be over 2TB file on server side, and inode.i_blocks
for over 2TB file will become invalid on client side in case CONFIG_LBD
is disabled.

So, I think inode.i_blocks should be a type of 8 byte
(ex. unsigned long long). How does it look?

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

\
 
 \ /
  Last update: 2005-12-03 14:04    [W:0.084 / U:0.124 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site