summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2015-12-15 14:20:16 +0100
committerRobin Appelman <icewind@owncloud.com>2015-12-15 14:24:02 +0100
commit667d7383e159d12102d2bf519ca2215681865aa9 (patch)
treed7630bff947ee8c7161f7d243d4aecec5a0193f2
parent38a2467a4f6344affc17a4c21862b047bfdf51e1 (diff)
downloadnextcloud-server-667d7383e159d12102d2bf519ca2215681865aa9.tar.gz
nextcloud-server-667d7383e159d12102d2bf519ca2215681865aa9.zip
clear statcache after fopen for smb
-rw-r--r--apps/files_external/lib/smb.php9
1 files changed, 7 insertions, 2 deletions
diff --git a/apps/files_external/lib/smb.php b/apps/files_external/lib/smb.php
index a94840ead59..80b44a4cbdf 100644
--- a/apps/files_external/lib/smb.php
+++ b/apps/files_external/lib/smb.php
@@ -33,6 +33,7 @@ use Icewind\SMB\Exception\Exception;
use Icewind\SMB\Exception\NotFoundException;
use Icewind\SMB\NativeServer;
use Icewind\SMB\Server;
+use Icewind\Streams\CallbackWrapper;
use Icewind\Streams\IteratorDirectory;
use OC\Files\Filesystem;
@@ -189,7 +190,10 @@ class SMB extends Common {
return $this->share->read($fullPath);
case 'w':
case 'wb':
- return $this->share->write($fullPath);
+ $source = $this->share->write($fullPath);
+ return CallBackWrapper::wrap($source, null, null, function () use ($fullPath) {
+ unset($this->statCache[$fullPath]);
+ });
case 'a':
case 'ab':
case 'r+':
@@ -219,7 +223,8 @@ class SMB extends Common {
}
$source = fopen($tmpFile, $mode);
$share = $this->share;
- return CallBackWrapper::wrap($source, null, null, function () use ($tmpFile, $fullPath, $share) {
+ return CallbackWrapper::wrap($source, null, null, function () use ($tmpFile, $fullPath, $share) {
+ unset($this->statCache[$fullPath]);
$share->put($tmpFile, $fullPath);
unlink($tmpFile);
});