diff options
Diffstat (limited to 'services/core/java/com/android/server/MountService.java')
-rw-r--r-- | services/core/java/com/android/server/MountService.java | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/MountService.java b/services/core/java/com/android/server/MountService.java index cac2f5c..a99f387 100644 --- a/services/core/java/com/android/server/MountService.java +++ b/services/core/java/com/android/server/MountService.java @@ -740,19 +740,29 @@ class MountService extends IMountService.Stub } case VoldResponseCode.DISK_VOLUME_CREATED: { if (cooked.length != 3) break; - final DiskInfo disk = mDisks.get(cooked[1]); + final String diskId = cooked[1]; final String volId = cooked[2]; + final DiskInfo disk = mDisks.get(diskId); if (disk != null) { - disk.volumes = ArrayUtils.appendElement(String.class, disk.volumes, volId); + disk.volumeIds = ArrayUtils.appendElement(String.class, disk.volumeIds, volId); + } + final VolumeInfo vol = mVolumes.get(volId); + if (vol != null) { + vol.diskId = diskId; } break; } case VoldResponseCode.DISK_VOLUME_DESTROYED: { if (cooked.length != 3) break; - final DiskInfo disk = mDisks.get(cooked[1]); + final String diskId = cooked[1]; final String volId = cooked[2]; + final DiskInfo disk = mDisks.get(diskId); if (disk != null) { - disk.volumes = ArrayUtils.removeElement(String.class, disk.volumes, volId); + disk.volumeIds = ArrayUtils.removeElement(String.class, disk.volumeIds, volId); + } + final VolumeInfo vol = mVolumes.get(volId); + if (vol != null) { + vol.diskId = null; } break; } |