From 5a0397eb5e10ebc5a43e4a034dae4eb4b227b8ac Mon Sep 17 00:00:00 2001
From: Robin Appelman <icewind@owncloud.com>
Date: Wed, 16 Jul 2014 21:24:18 +0200
Subject: [PATCH] Fix renaming files in the root folder of a MappedLocal
 storage

---
 lib/private/files/storage/mappedlocal.php | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/lib/private/files/storage/mappedlocal.php b/lib/private/files/storage/mappedlocal.php
index 6910eef740..c4a8dc1961 100644
--- a/lib/private/files/storage/mappedlocal.php
+++ b/lib/private/files/storage/mappedlocal.php
@@ -184,8 +184,8 @@ class MappedLocal extends \OC\Files\Storage\Common {
 	}
 
 	public function rename($path1, $path2) {
-		$srcParent = dirname($path1);
-		$dstParent = dirname($path2);
+		$srcParent = $this->dirname($path1);
+		$dstParent = $this->dirname($path2);
 
 		if (!$this->isUpdatable($srcParent)) {
 			\OC_Log::write('core', 'unable to rename, source directory is not writable : ' . $srcParent, \OC_Log::ERROR);
@@ -355,6 +355,8 @@ class MappedLocal extends \OC\Files\Storage\Common {
 
 	/**
 	 * @param string $path
+	 * @param bool $create
+	 * @return string
 	 */
 	private function buildPath($path, $create = true) {
 		$path = $this->stripLeading($path);
@@ -362,6 +364,19 @@ class MappedLocal extends \OC\Files\Storage\Common {
 		return $this->mapper->logicToPhysical($fullPath, $create);
 	}
 
+	/**
+	 * @param string $path
+	 * @return string
+	 */
+	private function dirName($path) {
+		$path = dirname($path);
+		if ($path === '.') {
+			return '';
+		} else {
+			return $path;
+		}
+	}
+
 	/**
 	 * @param string $path
 	 */
-- 
GitLab