[lkml]   [2000]   [Aug]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
ls does not show the correct size for files greater than 4G:

% ls -ls file_greater_than_4G

8422534 -rw-rw-r-- 1 mrvn mrvn 1048576 Aug 25 23:14 file_greater_than_4G

The wrong size seems to be a kernel problem:

from /usr/src/linux/include/asm-i386/posix_types.h:
typedef long __kernel_off_t;

from /usr/src/linux/include/types.h:
typedef __kernel_off_t off_t;

from /usr/src/linux/include/linux/fs.h: struct inode {
loff_t i_size;

from /usr/src/linux/fs/stat.c: static long cp_new_stat64(struct inode * inode, struct stat64 * statbuf)
tmp.st_size = inode->i_size;

So lstat64 get the size from the internl inode structure and that uses
a 32 Bit value for the size on 32 Bit systems. There is no way to get
the correct size for big files.

May the Source be with you.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

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