The early LFS work that Linux uses favours EFBIG in various places. SuSv3 specifically uses EOVERFLOW for this as noted by Michael (Bug 7253) -- [EOVERFLOW] The named file is a regular file and the size of the file cannot be represented correctly in an object of type off_t. We should therefore transition to the proper error return code Signed-off-by: Alan Cox <alan@xxxxxxxxxx> diff -u --new-file --exclude-from /usr/src/exclude --recursive linux.vanilla-2.6.23rc8-mm1/fs/gfs2/ops_file.c linux-2.6.23rc8-mm1/fs/gfs2/ops_file.c --- linux.vanilla-2.6.23rc8-mm1/fs/gfs2/ops_file.c 2007-09-26 16:46:54.000000000 +0100 +++ linux-2.6.23rc8-mm1/fs/gfs2/ops_file.c 2007-09-27 13:45:48.000000000 +0100 @@ -406,7 +406,7 @@ if (!(file->f_flags & O_LARGEFILE) && ip->i_di.di_size > MAX_NON_LFS) { - error = -EFBIG; + error = -EOVERFLOW; goto fail_gunlock; } diff -u --new-file --exclude-from /usr/src/exclude --recursive linux.vanilla-2.6.23rc8-mm1/fs/ntfs/file.c linux-2.6.23rc8-mm1/fs/ntfs/file.c --- linux.vanilla-2.6.23rc8-mm1/fs/ntfs/file.c 2007-09-26 16:46:55.000000000 +0100 +++ linux-2.6.23rc8-mm1/fs/ntfs/file.c 2007-09-27 13:47:35.000000000 +0100 @@ -61,7 +61,7 @@ { if (sizeof(unsigned long) < 8) { if (i_size_read(vi) > MAX_LFS_FILESIZE) - return -EFBIG; + return -EOVERFLOW; } return generic_file_open(vi, filp); } diff -u --new-file --exclude-from /usr/src/exclude --recursive linux.vanilla-2.6.23rc8-mm1/fs/open.c linux-2.6.23rc8-mm1/fs/open.c --- linux.vanilla-2.6.23rc8-mm1/fs/open.c 2007-09-26 16:46:55.000000000 +0100 +++ linux-2.6.23rc8-mm1/fs/open.c 2007-09-27 13:45:10.000000000 +0100 @@ -1210,7 +1210,7 @@ int generic_file_open(struct inode * inode, struct file * filp) { if (!(filp->f_flags & O_LARGEFILE) && i_size_read(inode) > MAX_NON_LFS) - return -EFBIG; + return -EOVERFLOW; return 0; } - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html