diff --git a/lib/files/view.php b/lib/files/view.php
index 8558b03fe1ea2d02a34ee84ca145bc0f5f993694..9ba3eea3cf9f622d20193565dd5806a64202432c 100644
--- a/lib/files/view.php
+++ b/lib/files/view.php
@@ -739,6 +739,18 @@ class View {
 
 			$files = $cache->getFolderContents($internalPath); //TODO: mimetype_filter
 
+			$ids = array();
+			foreach ($files as $i => $file) {
+				$files[$i]['type'] = $file['mimetype'] === 'httpd/unix-directory' ? 'dir' : 'file';
+				$ids[] = $file['fileid'];
+			}
+
+			$permissionsCache = $storage->getPermissionsCache($internalPath);
+			$permissions = $permissionsCache->getMultiple($ids, \OC_User::getUser());
+			foreach ($files as $i => $file) {
+				$files[$i]['permissions'] = $permissions[$file['fileid']];
+			}
+
 			//add a folder for any mountpoint in this directory and add the sizes of other mountpoints to the folders
 			$mountPoints = Filesystem::getMountPoints($path);
 			$dirLength = strlen($path);
@@ -758,24 +770,14 @@ class View {
 						}
 					} else { //mountpoint in this folder, add an entry for it
 						$rootEntry['name'] = $relativePath;
+						$rootEntry['type'] = $rootEntry['mimetype'] === 'httpd/unix-directory' ? 'dir' : 'file';
+						$subPermissionsCache = $subStorage->getPermissionsCache('');
+						$rootEntry['permissions'] = $subPermissionsCache->get($rootEntry['fileid'], \OC_User::getUser());
 						$files[] = $rootEntry;
 					}
 				}
 			}
 
-			$ids = array();
-
-			foreach ($files as $i => $file) {
-				$files[$i]['type'] = $file['mimetype'] === 'httpd/unix-directory' ? 'dir' : 'file';
-				$ids[] = $file['fileid'];
-			}
-			$permissionsCache = $storage->getPermissionsCache($internalPath);
-
-			$permissions = $permissionsCache->getMultiple($ids, \OC_User::getUser());
-			foreach ($files as $i => $file) {
-				$files[$i]['permissions'] = $permissions[$file['fileid']];
-			}
-
 			if ($mimetype_filter) {
 				foreach ($files as $file) {
 					if (strpos($mimetype_filter, '/')) {