Merge "Expose new IncFS interface through Vold"

gugelfrei
Yurii Zubrytskyi 4 years ago committed by Android (Google) Code Review
commit 8777107734

@ -932,26 +932,26 @@ binder::Status VoldNativeService::resetCheckpoint() {
return ok(); return ok();
} }
binder::Status VoldNativeService::incFsVersion(int32_t* _aidl_return) { binder::Status VoldNativeService::incFsEnabled(bool* _aidl_return) {
*_aidl_return = IncFs_Version(); *_aidl_return = IncFs_IsEnabled();
return ok(); return ok();
} }
binder::Status VoldNativeService::mountIncFs( binder::Status VoldNativeService::mountIncFs(
const std::string& imagePath, const std::string& targetDir, int32_t flags, const std::string& backingPath, const std::string& targetDir, int32_t flags,
::android::os::incremental::IncrementalFileSystemControlParcel* _aidl_return) { ::android::os::incremental::IncrementalFileSystemControlParcel* _aidl_return) {
auto result = IncFs_Mount(imagePath.c_str(), targetDir.c_str(), flags, auto result = IncFs_Mount(backingPath.c_str(), targetDir.c_str(),
INCFS_DEFAULT_READ_TIMEOUT_MS, 0777); {.flags = IncFsMountFlags(flags),
if (result.cmdFd < 0) { .defaultReadTimeoutMs = INCFS_DEFAULT_READ_TIMEOUT_MS,
return translate(result.cmdFd); .readLogBufferPages = 4});
} if (result.cmd < 0) {
LOG(INFO) << "VoldNativeService::mountIncFs: everything is fine! " << result.cmdFd << "/" return translate(result.cmd);
<< result.logFd; }
using ParcelFileDescriptor = ::android::os::ParcelFileDescriptor;
using unique_fd = ::android::base::unique_fd; using unique_fd = ::android::base::unique_fd;
_aidl_return->cmd = std::make_unique<ParcelFileDescriptor>(unique_fd(result.cmdFd)); _aidl_return->cmd.reset(unique_fd(result.cmd));
if (result.logFd >= 0) { _aidl_return->pendingReads.reset(unique_fd(result.pendingReads));
_aidl_return->log = std::make_unique<ParcelFileDescriptor>(unique_fd(result.logFd)); if (result.logs >= 0) {
_aidl_return->log.reset(unique_fd(result.logs));
} }
return ok(); return ok();
} }

@ -146,9 +146,9 @@ class VoldNativeService : public BinderService<VoldNativeService>, public os::Bn
binder::Status supportsFileCheckpoint(bool* _aidl_return); binder::Status supportsFileCheckpoint(bool* _aidl_return);
binder::Status resetCheckpoint(); binder::Status resetCheckpoint();
binder::Status incFsVersion(int32_t* _aidl_return) override; binder::Status incFsEnabled(bool* _aidl_return) override;
binder::Status mountIncFs( binder::Status mountIncFs(
const std::string& imagePath, const std::string& targetDir, int32_t flags, const std::string& backingPath, const std::string& targetDir, int32_t flags,
::android::os::incremental::IncrementalFileSystemControlParcel* _aidl_return) override; ::android::os::incremental::IncrementalFileSystemControlParcel* _aidl_return) override;
binder::Status unmountIncFs(const std::string& dir) override; binder::Status unmountIncFs(const std::string& dir) override;
binder::Status bindMount(const std::string& sourceDir, const std::string& targetDir) override; binder::Status bindMount(const std::string& sourceDir, const std::string& targetDir) override;

@ -130,8 +130,8 @@ interface IVold {
FileDescriptor openAppFuseFile(int uid, int mountId, int fileId, int flags); FileDescriptor openAppFuseFile(int uid, int mountId, int fileId, int flags);
int incFsVersion(); boolean incFsEnabled();
IncrementalFileSystemControlParcel mountIncFs(@utf8InCpp String imagePath, @utf8InCpp String targetDir, int flags); IncrementalFileSystemControlParcel mountIncFs(@utf8InCpp String backingPath, @utf8InCpp String targetDir, int flags);
void unmountIncFs(@utf8InCpp String dir); void unmountIncFs(@utf8InCpp String dir);
void bindMount(@utf8InCpp String sourceDir, @utf8InCpp String targetDir); void bindMount(@utf8InCpp String sourceDir, @utf8InCpp String targetDir);

Loading…
Cancel
Save