Merge "Delay disk inserted broadcast until disk is ready"

gugelfrei
Jean-Baptiste Queru 12 years ago committed by android code review
commit bac5eb966c

@ -113,6 +113,16 @@ int DirectVolume::handleBlockEvent(NetlinkEvent *evt) {
} else { } else {
handlePartitionAdded(dp, evt); 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) { } else if (action == NetlinkEvent::NlActionRemove) {
if (!strcmp(devtype, "disk")) { if (!strcmp(devtype, "disk")) {
handleDiskRemoved(dp, evt); handleDiskRemoved(dp, evt);
@ -148,8 +158,6 @@ void DirectVolume::handleDiskAdded(const char *devpath, NetlinkEvent *evt) {
mDiskNumParts = 1; mDiskNumParts = 1;
} }
char msg[255];
int partmask = 0; int partmask = 0;
int i; int i;
for (i = 1; i <= mDiskNumParts; i++) { for (i = 1; i <= mDiskNumParts; i++) {
@ -169,11 +177,6 @@ void DirectVolume::handleDiskAdded(const char *devpath, NetlinkEvent *evt) {
#endif #endif
setState(Volume::State_Pending); 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) { void DirectVolume::handlePartitionAdded(const char *devpath, NetlinkEvent *evt) {

Loading…
Cancel
Save