diff options
author | Steve Kondik <shade@chemlab.org> | 2012-11-18 19:43:45 -0800 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2012-11-18 19:43:45 -0800 |
commit | 57e08d0966a86b8d42378e5d2e5f8c9a756b6da0 (patch) | |
tree | ef80850c3084526afbacf996e0b819110d76c0e1 /DirectVolume.cpp | |
parent | 3e61f1d12494ac0f456623681f12edf9b356245f (diff) | |
parent | 1cbe0ce40c523de48911fec2a94aec34e8ab14a3 (diff) | |
download | system_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.cpp | 22 |
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)", |