Loading core/java/android/os/incremental/IncrementalFileSystemControlParcel.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -25,4 +25,5 @@ parcelable IncrementalFileSystemControlParcel { ParcelFileDescriptor cmd; ParcelFileDescriptor pendingReads; ParcelFileDescriptor log; @nullable ParcelFileDescriptor blocksWritten; } services/incremental/IncrementalService.cpp +9 −2 Original line number Diff line number Diff line Loading @@ -503,7 +503,9 @@ StorageId IncrementalService::createStorage( int cmd = controlParcel.cmd.release().release(); int pendingReads = controlParcel.pendingReads.release().release(); int logs = controlParcel.log.release().release(); control = mIncFs->createControl(cmd, pendingReads, logs); int blocksWritten = controlParcel.blocksWritten ? controlParcel.blocksWritten->release().release() : -1; control = mIncFs->createControl(cmd, pendingReads, logs, blocksWritten); } std::unique_lock l(mLock); Loading Loading @@ -1381,7 +1383,9 @@ bool IncrementalService::mountExistingImage(std::string_view root) { int cmd = controlParcel.cmd.release().release(); int pendingReads = controlParcel.pendingReads.release().release(); int logs = controlParcel.log.release().release(); IncFsMount::Control control = mIncFs->createControl(cmd, pendingReads, logs); int blocksWritten = controlParcel.blocksWritten ? controlParcel.blocksWritten->release().release() : -1; IncFsMount::Control control = mIncFs->createControl(cmd, pendingReads, logs, blocksWritten); auto ifs = std::make_shared<IncFsMount>(std::string(root), -1, std::move(control), *this); Loading Loading @@ -1516,6 +1520,9 @@ void IncrementalService::prepareDataLoaderLocked(IncFsMount& ifs, DataLoaderPara fsControlParcel.incremental->cmd.reset(dup(ifs.control.cmd())); fsControlParcel.incremental->pendingReads.reset(dup(ifs.control.pendingReads())); fsControlParcel.incremental->log.reset(dup(ifs.control.logs())); if (ifs.control.blocksWritten() >= 0) { fsControlParcel.incremental->blocksWritten.emplace(dup(ifs.control.blocksWritten())); } fsControlParcel.service = new IncrementalServiceConnector(*this, ifs.mountId); ifs.dataLoaderStub = Loading services/incremental/ServiceWrappers.cpp +3 −2 Original line number Diff line number Diff line Loading @@ -144,8 +144,9 @@ public: } } Control openMount(std::string_view path) const final { return incfs::open(path); } Control createControl(IncFsFd cmd, IncFsFd pendingReads, IncFsFd logs) const final { return incfs::createControl(cmd, pendingReads, logs); Control createControl(IncFsFd cmd, IncFsFd pendingReads, IncFsFd logs, IncFsFd blocksWritten) const final { return incfs::createControl(cmd, pendingReads, logs, blocksWritten); } ErrorCode makeFile(const Control& control, std::string_view path, int mode, FileId id, incfs::NewFileParams params) const final { Loading services/incremental/ServiceWrappers.h +2 −1 Original line number Diff line number Diff line Loading @@ -85,7 +85,8 @@ public: virtual ~IncFsWrapper() = default; virtual void listExistingMounts(const ExistingMountCallback& cb) const = 0; virtual Control openMount(std::string_view path) const = 0; virtual Control createControl(IncFsFd cmd, IncFsFd pendingReads, IncFsFd logs) const = 0; virtual Control createControl(IncFsFd cmd, IncFsFd pendingReads, IncFsFd logs, IncFsFd blocksWritten) const = 0; virtual ErrorCode makeFile(const Control& control, std::string_view path, int mode, FileId id, incfs::NewFileParams params) const = 0; virtual ErrorCode makeDir(const Control& control, std::string_view path, int mode) const = 0; Loading services/incremental/test/IncrementalServiceTest.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -285,7 +285,9 @@ class MockIncFs : public IncFsWrapper { public: MOCK_CONST_METHOD1(listExistingMounts, void(const ExistingMountCallback& cb)); MOCK_CONST_METHOD1(openMount, Control(std::string_view path)); MOCK_CONST_METHOD3(createControl, Control(IncFsFd cmd, IncFsFd pendingReads, IncFsFd logs)); MOCK_CONST_METHOD4(createControl, Control(IncFsFd cmd, IncFsFd pendingReads, IncFsFd logs, IncFsFd blocksWritten)); MOCK_CONST_METHOD5(makeFile, ErrorCode(const Control& control, std::string_view path, int mode, FileId id, NewFileParams params)); Loading Loading @@ -355,7 +357,7 @@ public: static constexpr auto kPendingReadsFd = 42; Control openMountForHealth(std::string_view) { return UniqueControl(IncFs_CreateControl(-1, kPendingReadsFd, -1)); return UniqueControl(IncFs_CreateControl(-1, kPendingReadsFd, -1, -1)); } RawMetadata getMountInfoMetadata(const Control& control, std::string_view path) { Loading Loading
core/java/android/os/incremental/IncrementalFileSystemControlParcel.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -25,4 +25,5 @@ parcelable IncrementalFileSystemControlParcel { ParcelFileDescriptor cmd; ParcelFileDescriptor pendingReads; ParcelFileDescriptor log; @nullable ParcelFileDescriptor blocksWritten; }
services/incremental/IncrementalService.cpp +9 −2 Original line number Diff line number Diff line Loading @@ -503,7 +503,9 @@ StorageId IncrementalService::createStorage( int cmd = controlParcel.cmd.release().release(); int pendingReads = controlParcel.pendingReads.release().release(); int logs = controlParcel.log.release().release(); control = mIncFs->createControl(cmd, pendingReads, logs); int blocksWritten = controlParcel.blocksWritten ? controlParcel.blocksWritten->release().release() : -1; control = mIncFs->createControl(cmd, pendingReads, logs, blocksWritten); } std::unique_lock l(mLock); Loading Loading @@ -1381,7 +1383,9 @@ bool IncrementalService::mountExistingImage(std::string_view root) { int cmd = controlParcel.cmd.release().release(); int pendingReads = controlParcel.pendingReads.release().release(); int logs = controlParcel.log.release().release(); IncFsMount::Control control = mIncFs->createControl(cmd, pendingReads, logs); int blocksWritten = controlParcel.blocksWritten ? controlParcel.blocksWritten->release().release() : -1; IncFsMount::Control control = mIncFs->createControl(cmd, pendingReads, logs, blocksWritten); auto ifs = std::make_shared<IncFsMount>(std::string(root), -1, std::move(control), *this); Loading Loading @@ -1516,6 +1520,9 @@ void IncrementalService::prepareDataLoaderLocked(IncFsMount& ifs, DataLoaderPara fsControlParcel.incremental->cmd.reset(dup(ifs.control.cmd())); fsControlParcel.incremental->pendingReads.reset(dup(ifs.control.pendingReads())); fsControlParcel.incremental->log.reset(dup(ifs.control.logs())); if (ifs.control.blocksWritten() >= 0) { fsControlParcel.incremental->blocksWritten.emplace(dup(ifs.control.blocksWritten())); } fsControlParcel.service = new IncrementalServiceConnector(*this, ifs.mountId); ifs.dataLoaderStub = Loading
services/incremental/ServiceWrappers.cpp +3 −2 Original line number Diff line number Diff line Loading @@ -144,8 +144,9 @@ public: } } Control openMount(std::string_view path) const final { return incfs::open(path); } Control createControl(IncFsFd cmd, IncFsFd pendingReads, IncFsFd logs) const final { return incfs::createControl(cmd, pendingReads, logs); Control createControl(IncFsFd cmd, IncFsFd pendingReads, IncFsFd logs, IncFsFd blocksWritten) const final { return incfs::createControl(cmd, pendingReads, logs, blocksWritten); } ErrorCode makeFile(const Control& control, std::string_view path, int mode, FileId id, incfs::NewFileParams params) const final { Loading
services/incremental/ServiceWrappers.h +2 −1 Original line number Diff line number Diff line Loading @@ -85,7 +85,8 @@ public: virtual ~IncFsWrapper() = default; virtual void listExistingMounts(const ExistingMountCallback& cb) const = 0; virtual Control openMount(std::string_view path) const = 0; virtual Control createControl(IncFsFd cmd, IncFsFd pendingReads, IncFsFd logs) const = 0; virtual Control createControl(IncFsFd cmd, IncFsFd pendingReads, IncFsFd logs, IncFsFd blocksWritten) const = 0; virtual ErrorCode makeFile(const Control& control, std::string_view path, int mode, FileId id, incfs::NewFileParams params) const = 0; virtual ErrorCode makeDir(const Control& control, std::string_view path, int mode) const = 0; Loading
services/incremental/test/IncrementalServiceTest.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -285,7 +285,9 @@ class MockIncFs : public IncFsWrapper { public: MOCK_CONST_METHOD1(listExistingMounts, void(const ExistingMountCallback& cb)); MOCK_CONST_METHOD1(openMount, Control(std::string_view path)); MOCK_CONST_METHOD3(createControl, Control(IncFsFd cmd, IncFsFd pendingReads, IncFsFd logs)); MOCK_CONST_METHOD4(createControl, Control(IncFsFd cmd, IncFsFd pendingReads, IncFsFd logs, IncFsFd blocksWritten)); MOCK_CONST_METHOD5(makeFile, ErrorCode(const Control& control, std::string_view path, int mode, FileId id, NewFileParams params)); Loading Loading @@ -355,7 +357,7 @@ public: static constexpr auto kPendingReadsFd = 42; Control openMountForHealth(std::string_view) { return UniqueControl(IncFs_CreateControl(-1, kPendingReadsFd, -1)); return UniqueControl(IncFs_CreateControl(-1, kPendingReadsFd, -1, -1)); } RawMetadata getMountInfoMetadata(const Control& control, std::string_view path) { Loading