diff options
author | Jean-Baptiste Queru <jbq@google.com> | 2012-05-22 07:25:51 -0700 |
---|---|---|
committer | android code review <noreply-gerritcodereview@google.com> | 2012-05-22 07:25:52 -0700 |
commit | bac5eb966c5c3aa9abe83cdb5187326f422741ab (patch) | |
tree | 4bdebdcc5009bd073d00d9cf86107e22955e5ac6 | |
parent | 5cf6325c91792dbb1bb08fa1958c1fc8a5b9c45d (diff) | |
parent | 3dafc26e4f3adb9607e82ab0bd52ead5f76859a1 (diff) | |
download | system_vold-bac5eb966c5c3aa9abe83cdb5187326f422741ab.zip system_vold-bac5eb966c5c3aa9abe83cdb5187326f422741ab.tar.gz system_vold-bac5eb966c5c3aa9abe83cdb5187326f422741ab.tar.bz2 |
Merge "Delay disk inserted broadcast until disk is ready"
-rw-r--r-- | DirectVolume.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/DirectVolume.cpp b/DirectVolume.cpp index c745c93..2a24376 100644 --- a/DirectVolume.cpp +++ b/DirectVolume.cpp @@ -113,6 +113,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); @@ -148,8 +158,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++) { @@ -169,11 +177,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) { |