summaryrefslogtreecommitdiff
path: root/include/linux/stat.h
AgeCommit message (Collapse)Author
2006-03-26[PATCH] 2TB files: st_blocks is invalid when calling stat64Takashi Sato
This patch series fixes the following problems on 32 bits architecture. o stat64 returns the lower 32 bits of blocks, although userland st_blocks has 64 bits, because i_blocks has only 32 bits. The ioctl with FIOQSIZE has the same problem. o As Dave Kleikamp said, making >2TB file on JFS results in writing an invalid block number to disk inode. The cause is the same as above too. o In generic quota code 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. The cause is the same as above too. o As Trond Myklebust said, statfs64's entries related to blocks are invalid on statfs64 for a network filesystem which has more than 2^32-1 blocks with CONFIG_LBD disabled. [PATCH 3/3] We made patches to fix problems that occur when handling a large filesystem and a large file. It was discussed on the mails titled "stat64 for over 2TB file returned invalid st_blocks". Signed-off-by: Takashi Sato <sho@tnes.nec.co.jp> Cc: Dave Kleikamp <shaggy@austin.ibm.com> Cc: Jan Kara <jack@ucw.cz> Cc: Trond Myklebust <trond.myklebust@fys.uio.no> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2004-06-14[PATCH] stat nlink resolution fixChris Wedgwood
Some filesystems can get overflows when their link-count exceeds 65534. This patch increases the kernels internal resolution for this and also has a check for the old-system call paths to return and error (-EOVERFLOW) as required (as suggested by Al Viro). Signed-off-by: Chris Wedgwood <cw@f00f.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2002-11-17[PATCH] nanosecond stat timefieldsAndi Kleen
stat64 has been changed to return jiffies granuality as nsec in previously unused fields. This allows make to make better decisions on when to recompile a file. Follows losely the Solaris API. CURRENT_TIME has been redefined to return struct timespec. The users who don't use it in a inode/attr context have been changed to use a new get_seconds() function. CURRENT_TIME is implemented by an out-of-line function. There is a small performance penalty in this patch. The previous filemap code had an optimization to flush atime only once a second. This is currently gone, which will increase flushes a bit. I believe the correct solution if it should be a problem is to have per super block fields that give an arbitary atime flush granuality - so that you can set it to be only flushed once a hour if you prefer that. I will work on that later in separate patches if the need should arise. struct inode and the attr struct has been changed to store struct timespec instead of time_t for [cma]time. Not all file systems support this granuality, but some like XFS,NFSv3,CIFS,JFS do. The others will currently truncate the nsec part on flushing to disk. There was some discussion on this rounding on l-k previously. I went for simple truncation because there is not much evidence IMHO that the more complicated roundings have any advantages. In practice application will be rather unlikely to notice the rounding anyways - they can only see a difference when an inode is flush from memory and reloaded in less than a second, which is rather unlikely.
2002-02-05[PATCH] (1/5) beginning of getattr series.Alexander Viro
added new helpers - vfs_stat(), vfs_lstat() and vfs_fstat(). fs/stat.c switched to use them. Following patches will stat(2) variants in arch/* that used to copy inode fields manually switched to vfs_*stat() and partially cleaned up irix_...() switched from sys_new*stat() to vfs_*stat() and cleaned up. Missing LFS check added. similar for solaris ones ditto for x86 compatibility ones on ia64. We are almost ready to switch to ->getattr() - let filesystem decide what values should go into ->st_... (e.g. for CODA life would become much easier if it could just use ->i_size of caching file, for supermount we want ->i_ino inherited from underlying fs, etc.) Another thing that needs to be done is fixing the rest of LFS/uid size fsckups in architecture-specific variants of stat() - I've fixed several, but quite a few are still there.
2002-02-04Import changesetLinus Torvalds