USB: gadgetfs AIO tweaks
authorAlan Stern <stern@rowland.harvard.edu>
Wed, 17 Jan 2007 07:28:48 +0000 (23:28 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 7 Feb 2007 23:44:39 +0000 (15:44 -0800)
commit49631ca7f3e2fd05186028b453fa27f75b830de7
treeb8fb89f0ef0a32c94c259d0fc6ab9bc40a828419
parentce46794f77f698eaf3b80922fafac5a9379085e0
USB: gadgetfs AIO tweaks

This patch (as837) fixes several mistakes in the AIO interface of the
gadgetfs driver:

The ki_retry method is not supposed to do a put on the kiocb.
The extra call to aio_put_req() causes memory corruption.
(Note: This call was removed before, by patch as691, and then
mysteriously re-introduced later.)

Even if a read transfer is cancelled, we can and should send
to the user all the data that did manage to get transferred.

Testing for AIO cancellation in the I/O completion handler
is both racy and (now) unnecessary.  aio_complete() does its
own checking, in a safe manner.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/gadget/inode.c