diff --git a/.gitreview b/.gitreview
new file mode 100644
index 0000000..bb98008
--- /dev/null
+++ b/.gitreview
@@ -0,0 +1,5 @@
+[gerrit]
+host=review.blissroms.com
+port=29418
+project=platform_packages_providers_MediaProvider.git
+defaultbranch=o8.0
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 1ea883a..2d4acec 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -7,6 +7,7 @@
     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
     <uses-permission android:name="android.permission.WRITE_SETTINGS" />
     <uses-permission android:name="android.permission.WAKE_LOCK" />
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />
     <uses-permission android:name="android.permission.ACCESS_MTP" />
diff --git a/src/com/android/providers/media/MediaProvider.java b/src/com/android/providers/media/MediaProvider.java
index a3a0c71..be197fc 100644
--- a/src/com/android/providers/media/MediaProvider.java
+++ b/src/com/android/providers/media/MediaProvider.java
@@ -1284,7 +1284,7 @@
 
         // Used temporarily (until we have unique media IDs) to get an identifier
         // for the current sd card, so that the music app doesn't have to use the
-        // non-public getFatVolumeId method
+        // non-public getVolumeId method
         if (table == FS_ID) {
             MatrixCursor c = new MatrixCursor(new String[] {"fsid"});
             c.addRow(new Integer[] {mVolumeId});
@@ -4504,11 +4504,11 @@
                 helper = new DatabaseHelper(context, INTERNAL_DATABASE_NAME, true,
                         false, mObjectRemovedCallback);
             } else if (EXTERNAL_VOLUME.equals(volume)) {
-                // Only extract FAT volume ID for primary public
+                // Only extract volume ID for primary public
                 final VolumeInfo vol = mStorageManager.getPrimaryPhysicalVolume();
                 if (vol != null) {
                     final StorageVolume actualVolume = mStorageManager.getPrimaryVolume();
-                    final int volumeId = actualVolume.getFatVolumeId();
+                    final int volumeId = actualVolume.getVolumeId();
 
                     // Must check for failure!
                     // If the volume is not (yet) mounted, this will create a new
@@ -4521,8 +4521,8 @@
                                 Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
                             // This may happen if external storage was _just_ mounted.  It may also
                             // happen if the volume ID is _actually_ 0xffffffff, in which case it
-                            // must be changed since FileUtils::getFatVolumeId doesn't allow for
-                            // that.  It may also indicate that FileUtils::getFatVolumeId is broken
+                            // must be changed since FileUtils::getVolumeId doesn't allow for
+                            // that.  It may also indicate that FileUtils::getVolumeId is broken
                             // (missing ioctl), which is also impossible to disambiguate.
                             Log.e(TAG, "Can't obtain external volume ID even though it's mounted.");
                         } else {
@@ -4685,7 +4685,7 @@
     // name of the volume currently being scanned by the media scanner (or null)
     private String mMediaScannerVolume;
 
-    // current FAT volume ID
+    // current volume ID
     private int mVolumeId = -1;
 
     static final String INTERNAL_VOLUME = "internal";
