summaryrefslogtreecommitdiffstats
path: root/DirectVolume.cpp
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2012-11-18 19:43:45 -0800
committerSteve Kondik <shade@chemlab.org>2012-11-18 19:43:45 -0800
commit57e08d0966a86b8d42378e5d2e5f8c9a756b6da0 (patch)
treeef80850c3084526afbacf996e0b819110d76c0e1 /DirectVolume.cpp
parent3e61f1d12494ac0f456623681f12edf9b356245f (diff)
parent1cbe0ce40c523de48911fec2a94aec34e8ab14a3 (diff)
downloadsystem_vold-57e08d0966a86b8d42378e5d2e5f8c9a756b6da0.tar.gz
system_vold-57e08d0966a86b8d42378e5d2e5f8c9a756b6da0.tar.bz2
system_vold-57e08d0966a86b8d42378e5d2e5f8c9a756b6da0.zip
Merge branch 'jb-mr1-release' of https://android.googlesource.com/platform/system/vold into mr1
Conflicts: Volume.cpp Change-Id: I0b28a56ac2edf1807ee21d23058bcfc5b4bb7724
Diffstat (limited to 'DirectVolume.cpp')
-rw-r--r--DirectVolume.cpp22
1 files changed, 15 insertions, 7 deletions
diff --git a/DirectVolume.cpp b/DirectVolume.cpp
index e463446..3b8c08d 100644
--- a/DirectVolume.cpp
+++ b/DirectVolume.cpp
@@ -121,6 +121,16 @@ int DirectVolume::handleBlockEvent(NetlinkEvent *evt) {
} else {
handlePartitionAdded(dp, evt);
}
+ /* Send notification iff disk is ready (ie all partitions found) */
+ if (getState() == Volume::State_Idle) {
+ char msg[255];
+
+ snprintf(msg, sizeof(msg),
+ "Volume %s %s disk inserted (%d:%d)", getLabel(),
+ getMountpoint(), mDiskMajor, mDiskMinor);
+ mVm->getBroadcaster()->sendBroadcast(ResponseCode::VolumeDiskInserted,
+ msg, false);
+ }
} else if (action == NetlinkEvent::NlActionRemove) {
if (!strcmp(devtype, "disk")) {
handleDiskRemoved(dp, evt);
@@ -156,8 +166,6 @@ void DirectVolume::handleDiskAdded(const char *devpath, NetlinkEvent *evt) {
mDiskNumParts = 1;
}
- char msg[255];
-
int partmask = 0;
int i;
for (i = 1; i <= mDiskNumParts; i++) {
@@ -177,11 +185,6 @@ void DirectVolume::handleDiskAdded(const char *devpath, NetlinkEvent *evt) {
#endif
setState(Volume::State_Pending);
}
-
- snprintf(msg, sizeof(msg), "Volume %s %s disk inserted (%d:%d)",
- getLabel(), getMountpoint(), mDiskMajor, mDiskMinor);
- mVm->getBroadcaster()->sendBroadcast(ResponseCode::VolumeDiskInserted,
- msg, false);
}
void DirectVolume::handlePartitionAdded(const char *devpath, NetlinkEvent *evt) {
@@ -292,6 +295,11 @@ void DirectVolume::handleDiskRemoved(const char *devpath, NetlinkEvent *evt) {
int major = atoi(evt->findParam("MAJOR"));
int minor = atoi(evt->findParam("MINOR"));
char msg[255];
+ bool enabled;
+
+ if (mVm->shareEnabled(getLabel(), "ums", &enabled) == 0 && enabled) {
+ mVm->unshareVolume(getLabel(), "ums");
+ }
SLOGD("Volume %s %s disk %d:%d removed\n", getLabel(), getMountpoint(), major, minor);
snprintf(msg, sizeof(msg), "Volume %s %s disk removed (%d:%d)",