USB: gadget: f_mtp: MTP driver cleanup:

Use a work queue instead of a separate thread for file transfer ioctls
(note: the file transfer must be done on a kernel thread rather than in
process context so vfs_read and vfs_write will use the correct address space
for the buffers)

Enforce requirement that only one ioctl call may be active at a time,
and remove mutex in mtp_send_event that is now no longer necessary.

Synchronize around use of shared variables to avoid SMP issues

Fix mismatched calls to fget and fput

Change-Id: I9e3ab092dbeb3327ce63c04a10af83c64a8baf71
Signed-off-by: Mike Lockwood <lockwood@android.com>
Signed-off-by: Chandra Devireddy <cdevired@codeaurora.org>
[cvelempa@codeaurora.org: Fixed compilation(line 1151: Initialise ret = 0)]
Signed-off-by: Chiranjeevi Velempati <cvelempa@codeaurora.org>
Merge "USB: gadget: f_mtp: MTP driver cleanup:" into android-msm-2.6.32