Although XFS can handle (2^63-1) file sizes, Linux can't.
The Linux VM uses a 32 bit page number index to index cache data, so
2^32 * PAGE_SIZE is as big as you can go. Define XFS_MAX_FILE_OFFSET
accordingly.
Having done that, XFS would still happily seek & truncate to greater
than that value; seek was fixed by using generic_file_llseek for
XFS's seek: method, and truncate was fixed by checking for an error
from inode_setattr() in linvfs_notify_change.
Date: Tue Jan 22 11:03:35 PST 2002
Workarea: stout.americas.sgi.com:/localhome/eric/2.4.x-xfs/workarea-reallyclean
The following file(s) were checked into:
bonnie.engr.sgi.com:/isms/slinx/2.4.x-xfs
Modid: xfs-cmds:slinx:109992a
cmd/xfsprogs/include/xfs_inode.h - 1.11
- Reduce XFS_MAX_FILE_OFFSET to something Linux can handle
Modid: 2.4.x-xfs:slinx:109992b
linux/fs/xfs/xfs_inode.h - 1.152
- Reduce XFS_MAX_FILE_OFFSET to something Linux can handle
linux/fs/xfs/linux/xfs_file.c - 1.57
- Use generic_file_llseek for the seek: method
(default_llseek doesn't do size checking)
linux/fs/xfs/linux/xfs_iops.c - 1.119
- Do error checking on inode_setattr() return
|