authfs: Remove Arc<Mutex<>> now that Strong is Sync

Bug: 191763370
Test: atest AuthFsHostTest
Change-Id: If090b1f29583691cec7135f711724f308a8abd02
diff --git a/authfs/src/file/remote_file.rs b/authfs/src/file/remote_file.rs
index 0b6c007..037b8ec 100644
--- a/authfs/src/file/remote_file.rs
+++ b/authfs/src/file/remote_file.rs
@@ -17,13 +17,12 @@
 use std::cmp::min;
 use std::convert::TryFrom;
 use std::io;
-use std::sync::{Arc, Mutex};
 
 use super::{ChunkBuffer, RandomWrite, ReadByChunk, VirtFdService};
 use crate::common::CHUNK_SIZE;
 
 fn remote_read_chunk(
-    service: &Arc<Mutex<VirtFdService>>,
+    service: &VirtFdService,
     remote_fd: i32,
     chunk_index: u64,
     buf: &mut ChunkBuffer,
@@ -32,8 +31,6 @@
         .map_err(|_| io::Error::from_raw_os_error(libc::EOVERFLOW))?;
 
     let chunk = service
-        .lock()
-        .unwrap()
         .readFile(remote_fd, offset, buf.len() as i32)
         .map_err(|e| io::Error::new(io::ErrorKind::Other, e.get_description()))?;
     let size = min(buf.len(), chunk.len());
@@ -43,12 +40,12 @@
 
 pub struct RemoteFileReader {
     // This needs to have Sync trait to be used in fuse::worker::start_message_loop.
-    service: Arc<Mutex<VirtFdService>>,
+    service: VirtFdService,
     file_fd: i32,
 }
 
 impl RemoteFileReader {
-    pub fn new(service: Arc<Mutex<VirtFdService>>, file_fd: i32) -> Self {
+    pub fn new(service: VirtFdService, file_fd: i32) -> Self {
         RemoteFileReader { service, file_fd }
     }
 }
@@ -61,13 +58,12 @@
 
 pub struct RemoteMerkleTreeReader {
     // This needs to be a Sync to be used in fuse::worker::start_message_loop.
-    // TODO(victorhsieh): change to Strong<> once binder supports it.
-    service: Arc<Mutex<VirtFdService>>,
+    service: VirtFdService,
     file_fd: i32,
 }
 
 impl RemoteMerkleTreeReader {
-    pub fn new(service: Arc<Mutex<VirtFdService>>, file_fd: i32) -> Self {
+    pub fn new(service: VirtFdService, file_fd: i32) -> Self {
         RemoteMerkleTreeReader { service, file_fd }
     }
 }
@@ -79,8 +75,6 @@
 
         let chunk = self
             .service
-            .lock()
-            .unwrap()
             .readFsverityMerkleTree(self.file_fd, offset, buf.len() as i32)
             .map_err(|e| io::Error::new(io::ErrorKind::Other, e.get_description()))?;
         let size = min(buf.len(), chunk.len());
@@ -91,12 +85,12 @@
 
 pub struct RemoteFileEditor {
     // This needs to have Sync trait to be used in fuse::worker::start_message_loop.
-    service: Arc<Mutex<VirtFdService>>,
+    service: VirtFdService,
     file_fd: i32,
 }
 
 impl RemoteFileEditor {
-    pub fn new(service: Arc<Mutex<VirtFdService>>, file_fd: i32) -> Self {
+    pub fn new(service: VirtFdService, file_fd: i32) -> Self {
         RemoteFileEditor { service, file_fd }
     }
 }
@@ -107,8 +101,6 @@
             i64::try_from(offset).map_err(|_| io::Error::from_raw_os_error(libc::EOVERFLOW))?;
         let size = self
             .service
-            .lock()
-            .unwrap()
             .writeFile(self.file_fd, &buf, offset)
             .map_err(|e| io::Error::new(io::ErrorKind::Other, e.get_description()))?;
         Ok(size as usize) // within range because size is supposed to <= buf.len(), which is a usize
@@ -118,8 +110,6 @@
         let size =
             i64::try_from(size).map_err(|_| io::Error::from_raw_os_error(libc::EOVERFLOW))?;
         self.service
-            .lock()
-            .unwrap()
             .resize(self.file_fd, size)
             .map_err(|e| io::Error::new(io::ErrorKind::Other, e.get_description()))?;
         Ok(())
diff --git a/authfs/src/main.rs b/authfs/src/main.rs
index d03e3ca..9d36c3f 100644
--- a/authfs/src/main.rs
+++ b/authfs/src/main.rs
@@ -32,7 +32,6 @@
 use std::fs::File;
 use std::io::Read;
 use std::path::{Path, PathBuf};
-use std::sync::{Arc, Mutex};
 use structopt::StructOpt;
 
 mod auth;
@@ -224,15 +223,14 @@
 ) -> Result<FileConfig> {
     let signature = service.readFsveritySignature(remote_id).context("Failed to read signature")?;
 
-    let service = Arc::new(Mutex::new(service));
     let authenticator = FakeAuthenticator::always_succeed();
     Ok(FileConfig::RemoteVerifiedReadonlyFile {
         reader: VerifiedFileReader::new(
             &authenticator,
-            RemoteFileReader::new(Arc::clone(&service), remote_id),
+            RemoteFileReader::new(service.clone(), remote_id),
             file_size,
             signature,
-            RemoteMerkleTreeReader::new(Arc::clone(&service), remote_id),
+            RemoteMerkleTreeReader::new(service.clone(), remote_id),
         )?,
         file_size,
     })
@@ -243,7 +241,7 @@
     remote_id: i32,
     file_size: u64,
 ) -> Result<FileConfig> {
-    let reader = RemoteFileReader::new(Arc::new(Mutex::new(service)), remote_id);
+    let reader = RemoteFileReader::new(service, remote_id);
     Ok(FileConfig::RemoteUnverifiedReadonlyFile { reader, file_size })
 }
 
@@ -274,7 +272,7 @@
     service: file::VirtFdService,
     remote_id: i32,
 ) -> Result<FileConfig> {
-    let remote_file = RemoteFileEditor::new(Arc::new(Mutex::new(service)), remote_id);
+    let remote_file = RemoteFileEditor::new(service, remote_id);
     Ok(FileConfig::RemoteVerifiedNewFile { editor: VerifiedFileEditor::new(remote_file) })
 }