Jeff Moyer 9d85cba718 aio: fix the compat vectored operations
The aio compat code was not converting the struct iovecs from 32bit to
64bit pointers, causing either EINVAL to be returned from io_getevents, or
EFAULT as the result of the I/O.  This patch passes a compat flag to
io_submit to signal that pointer conversion is necessary for a given iocb
array.

A variant of this was tested by Michael Tokarev.  I have also updated the
libaio test harness to exercise this code path with good success.
Further, I grabbed a copy of ltp and ran the
testcases/kernel/syscall/readv and writev tests there (compiled with -m32
on my 64bit system).  All seems happy, but extra eyes on this would be
welcome.

[akpm@linux-foundation.org: coding-style fixes]
[akpm@linux-foundation.org: fix CONFIG_COMPAT=n build]
Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
Reported-by: Michael Tokarev <mjt@tls.msk.ru>
Cc: Zach Brown <zach.brown@oracle.com>
Cc: <stable@kernel.org>		[2.6.35.1]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-05-27 09:12:53 -07:00
..
2010-05-27 09:12:53 -07:00
2010-05-27 09:12:41 -07:00
2010-04-30 14:52:51 -05:00
2010-05-25 08:07:04 -07:00
2010-05-21 18:31:20 -04:00
2010-05-17 05:27:42 +02:00
2010-05-25 08:07:03 -07:00
2010-05-27 09:12:47 -07:00
2010-05-21 18:31:16 -04:00
2010-05-25 08:07:07 -07:00
2010-05-27 09:12:53 -07:00
2010-03-06 11:26:29 -08:00
2010-03-19 08:05:10 +01:00
2010-05-21 18:31:16 -04:00
2010-05-21 18:31:16 -04:00
2010-05-11 17:43:58 +02:00
2010-05-21 21:27:26 +02:00
2010-03-06 11:26:29 -08:00
2010-05-21 18:31:16 -04:00
2010-03-08 16:55:37 +01:00
2010-05-21 18:31:17 -04:00
2010-05-21 18:31:22 -04:00
2010-05-18 08:57:00 +10:00
2010-05-21 18:31:17 -04:00
2010-03-12 15:52:32 -08:00
2010-05-21 18:31:17 -04:00