Transfer /dev/mtp_usb fd ownership when instancing MtpDevHandle

/dev/mtp_usb was opened before instancing MtpDevHandle, the existing fd
should be passed in otherwise MtpDevHandle::start would be blocked as it
attempted to open the device twice.

Change-Id: I6afc5b6926930dad77aceac2f6a00e1c6759a883
diff --git a/mtp/ffs/MtpDevHandle.cpp b/mtp/ffs/MtpDevHandle.cpp
index d6a8b82..e22ba55 100644
--- a/mtp/ffs/MtpDevHandle.cpp
+++ b/mtp/ffs/MtpDevHandle.cpp
@@ -33,8 +33,9 @@
 
 constexpr char mtp_dev_path[] = "/dev/mtp_usb";
 
-MtpDevHandle::MtpDevHandle()
-	: mFd(-1) {};
+MtpDevHandle::MtpDevHandle(int controlFd) {
+	mFd.reset(controlFd);
+}
 
 MtpDevHandle::~MtpDevHandle() {}
 
diff --git a/mtp/ffs/MtpDevHandle.h b/mtp/ffs/MtpDevHandle.h
index 4b06928..4ea1fdb 100644
--- a/mtp/ffs/MtpDevHandle.h
+++ b/mtp/ffs/MtpDevHandle.h
@@ -25,7 +25,7 @@
 	android::base::unique_fd mFd;
 
 public:
-	MtpDevHandle();
+	MtpDevHandle(int controlFd);
 	~MtpDevHandle();
 	int read(void *data, size_t len);
 	int write(const void *data, size_t len);
diff --git a/mtp/ffs/MtpServer.cpp b/mtp/ffs/MtpServer.cpp
index 5f17ff2..fa67024 100755
--- a/mtp/ffs/MtpServer.cpp
+++ b/mtp/ffs/MtpServer.cpp
@@ -123,7 +123,7 @@
 		mHandle = aio_compat ? new MtpFfsCompatHandle(controlFd) : new MtpFfsHandle(controlFd);
 		mHandle->writeDescriptors(mPtp);
 	} else {
-		mHandle = new MtpDevHandle();
+		mHandle = new MtpDevHandle(controlFd);
 	}
 }