It works for me on ia32. offset is a long long in 2.2.18pre21 on ia32.
I don't see anything wrong for
if (offset < 0)
return -EINVAL;
I got:
lseek(3, 4294967295, SEEK_SET) = -1 EINVAL (Invalid argument)
lseek(3, 4294967294, SEEK_SET) = -1 EINVAL (Invalid argument)
lseek(3, 4294967293, SEEK_SET) = -1 EINVAL (Invalid argument)
lseek(3, 4294967292, SEEK_SET) = -1 EINVAL (Invalid argument)
lseek(3, 4294967291, SEEK_SET) = -1 EINVAL (Invalid argument)
lseek(3, 2147483647, SEEK_CUR) = -1 EOVERFLOW (Value too large for defined data type)
lseek(3, 2147483647, SEEK_CUR) = -1 EOVERFLOW (Value too large for defined data type)
_llseek(3, 18446744073709551614, 0xbffff980, SEEK_SET) = -1 EINVAL (Invalid argument)
lseek(3, 4294867296, SEEK_SET) = -1 EINVAL (Invalid argument)
My kernel has LFS patch.
H.J.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/