diff --git a/lib/private/files/view.php b/lib/private/files/view.php
index b168d177ab2debeb74bc28fd4e52fa49b4d32f6e..91d7ea260d3a5fd5b4a4d9e7ca00c3df1ef93e01 100644
--- a/lib/private/files/view.php
+++ b/lib/private/files/view.php
@@ -161,7 +161,34 @@ class View {
 		return $this->basicOperation('mkdir', $path, array('create', 'write'));
 	}
 
+	protected function removeMount($mount, $path){
+		if ($mount instanceof MoveableMount) {
+			\OC_Hook::emit(
+				Filesystem::CLASSNAME, "umount",
+				array(Filesystem::signal_param_path => $path)
+			);
+			$result = $mount->removeMount();
+			if ($result) {
+				\OC_Hook::emit(
+					Filesystem::CLASSNAME, "post_umount",
+					array(Filesystem::signal_param_path => $path)
+				);
+			}
+			return $result;
+		} else {
+			// do not allow deleting the storage's root / the mount point
+			// because for some storages it might delete the whole contents
+			// but isn't supposed to work that way
+			return false;
+		}
+	}
+
 	public function rmdir($path) {
+		$absolutePath= $this->getAbsolutePath($path);
+		$mount = Filesystem::getMountManager()->find($absolutePath);
+		if ($mount->getInternalPath($absolutePath) === '') {
+			return $this->removeMount($mount, $path);
+		}
 		if ($this->is_dir($path)) {
 			return $this->basicOperation('rmdir', $path, array('delete'));
 		} else {
@@ -360,25 +387,7 @@ class View {
 		$absolutePath = Filesystem::normalizePath($this->getAbsolutePath($path));
 		$mount = Filesystem::getMountManager()->find($absolutePath . $postFix);
 		if ($mount->getInternalPath($absolutePath) === '') {
-			if ($mount instanceof MoveableMount) {
-				\OC_Hook::emit(
-						Filesystem::CLASSNAME, "umount",
-						array(Filesystem::signal_param_path => $path)
-						);
-				$result = $mount->removeMount();
-				if ($result) {
-					\OC_Hook::emit(
-							Filesystem::CLASSNAME, "post_umount",
-							array(Filesystem::signal_param_path => $path)
-							);
-				}
-				return $result;
-			} else {
-				// do not allow deleting the storage's root / the mount point
-				// because for some storages it might delete the whole contents
-				// but isn't supposed to work that way
-				return false;
-			}
+			return $this->removeMount($mount, $path);
 		}
 		return $this->basicOperation('unlink', $path, array('delete'));
 	}