Introduce postMount() VolumeBase helper. am: 5ec8658abc am: 2e05806850
Change-Id: I8fa1780662fd27adbb5729fdc89b06d8db545df5
diff --git a/model/PrivateVolume.cpp b/model/PrivateVolume.cpp
index 75757f7..e146633 100644
--- a/model/PrivateVolume.cpp
+++ b/model/PrivateVolume.cpp
@@ -177,6 +177,10 @@
return -EIO;
}
+ return OK;
+}
+
+void PrivateVolume::doPostMount() {
auto vol_manager = VolumeManager::Instance();
std::string mediaPath(mPath + "/media");
@@ -189,8 +193,6 @@
addVolume(vol);
vol->create();
}
-
- return OK;
}
status_t PrivateVolume::doUnmount() {
diff --git a/model/PrivateVolume.h b/model/PrivateVolume.h
index 9780485..607c4d1 100644
--- a/model/PrivateVolume.h
+++ b/model/PrivateVolume.h
@@ -49,6 +49,7 @@
status_t doCreate() override;
status_t doDestroy() override;
status_t doMount() override;
+ void doPostMount() override;
status_t doUnmount() override;
status_t doFormat(const std::string& fsType) override;
diff --git a/model/VolumeBase.cpp b/model/VolumeBase.cpp
index 687d4f7..27448da 100644
--- a/model/VolumeBase.cpp
+++ b/model/VolumeBase.cpp
@@ -232,9 +232,14 @@
status_t res = doMount();
setState(res == OK ? State::kMounted : State::kUnmountable);
+ if (res == OK) {
+ doPostMount();
+ }
return res;
}
+void VolumeBase::doPostMount() {}
+
status_t VolumeBase::unmount() {
if (mState != State::kMounted) {
LOG(WARNING) << getId() << " unmount requires state mounted";
diff --git a/model/VolumeBase.h b/model/VolumeBase.h
index 078bb0c..689750d 100644
--- a/model/VolumeBase.h
+++ b/model/VolumeBase.h
@@ -120,6 +120,7 @@
virtual status_t doCreate();
virtual status_t doDestroy();
virtual status_t doMount() = 0;
+ virtual void doPostMount();
virtual status_t doUnmount() = 0;
virtual status_t doFormat(const std::string& fsType);