Merge "Delay disk inserted broadcast until disk is ready"
This commit is contained in:
commit
bac5eb966c
1 changed files with 10 additions and 7 deletions
|
@ -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) {
|
||||
|
|
Loading…
Reference in a new issue