USB: gadget: f_mtp: Return zero result for successful file transfer.
authorMike Lockwood <lockwood@android.com>
Mon, 15 Nov 2010 20:22:21 +0000 (15:22 -0500)
committermgross <mark.gross@intel.com>
Wed, 9 Nov 2011 20:03:25 +0000 (12:03 -0800)
Returning number of bytes transfered does not work for files > 2 gig
since ioctl() result is a signed integer.

Signed-off-by: Mike Lockwood <lockwood@android.com>
drivers/usb/gadget/f_mtp.c

index 81075f2..81cc018 100644 (file)
@@ -621,15 +621,16 @@ static void send_file_work(struct work_struct *data) {
        struct file *filp;
        loff_t offset;
        size_t count;
-       int r, xfer, ret;
+       int xfer, ret;
+       int r = 0;
 
        /* read our parameters */
        smp_rmb();
        filp = dev->xfer_file;
        offset = dev->xfer_file_offset;
-       r = count = dev->xfer_file_length;
+       count = dev->xfer_file_length;
 
-       DBG(cdev, "send_file_work(%lld %d)\n", offset, count);
+       DBG(cdev, "send_file_work(%lld %u)\n", offset, count);
 
        while (count > 0) {
                /* get an idle tx request to use */
@@ -686,15 +687,16 @@ static void receive_file_work(struct work_struct *data)
        struct file *filp;
        loff_t offset;
        size_t count;
-       int r, ret, cur_buf = 0;
+       int ret, cur_buf = 0;
+       int r = 0;
 
        /* read our parameters */
        smp_rmb();
        filp = dev->xfer_file;
        offset = dev->xfer_file_offset;
-       r = count = dev->xfer_file_length;
+       count = dev->xfer_file_length;
 
-       DBG(cdev, "receive_file_work(%d)\n", count);
+       DBG(cdev, "receive_file_work(%u)\n", count);
 
        while (count > 0 || write_req) {
                if (count > 0) {