From: Andrew Morton <akpm@linux-foundation.org>
Date: Wed, 7 Nov 2007 15:28:33 -0800
The problem is more likely that we are failing to
invoke force_successful_syscall_return() here.
Otherwise the syscall return path interprets negative
values as errors, and sets the cpu condition codes.
And that is what userspace is actually checking for
to determine if there is an error or not.
-