[vold] update with incfs_ndk.h
BUG: 150470163
Test: atest PackageManagerShellCommandIncrementalTest
Change-Id: I5166c49cf48f353dab35e385571ada517cb751ac
Merged-In: I5166c49cf48f353dab35e385571ada517cb751ac
diff --git a/VoldNativeService.cpp b/VoldNativeService.cpp
index e894909..ee76518 100644
--- a/VoldNativeService.cpp
+++ b/VoldNativeService.cpp
@@ -866,19 +866,21 @@
CHECK_ARGUMENT_PATH(backingPath);
CHECK_ARGUMENT_PATH(targetDir);
- auto result = IncFs_Mount(backingPath.c_str(), targetDir.c_str(),
- {.flags = IncFsMountFlags(flags),
- .defaultReadTimeoutMs = INCFS_DEFAULT_READ_TIMEOUT_MS,
- .readLogBufferPages = 4});
- if (result.cmd < 0) {
- return translate(result.cmd);
+ auto control = IncFs_Mount(backingPath.c_str(), targetDir.c_str(),
+ {.flags = IncFsMountFlags(flags),
+ .defaultReadTimeoutMs = INCFS_DEFAULT_READ_TIMEOUT_MS,
+ .readLogBufferPages = 4});
+ if (control == nullptr) {
+ return translate(-1);
}
using unique_fd = ::android::base::unique_fd;
- _aidl_return->cmd.emplace(unique_fd(result.cmd));
- _aidl_return->pendingReads.emplace(unique_fd(result.pendingReads));
- if (result.logs >= 0) {
- _aidl_return->log.emplace(unique_fd(result.logs));
+ _aidl_return->cmd.emplace(unique_fd(dup(IncFs_GetControlFd(control, CMD))));
+ _aidl_return->pendingReads.emplace(unique_fd(dup(IncFs_GetControlFd(control, PENDING_READS))));
+ auto logsFd = IncFs_GetControlFd(control, LOGS);
+ if (logsFd >= 0) {
+ _aidl_return->log.emplace(unique_fd(dup(logsFd)));
}
+ IncFs_DeleteControl(control);
return Ok();
}