summaryrefslogtreecommitdiff
path: root/lisp/net/tramp-cache.el
diff options
context:
space:
mode:
authorMichael Albinus <michael.albinus@gmx.de>2011-11-16 22:32:46 +0100
committerMichael Albinus <michael.albinus@gmx.de>2011-11-16 22:32:46 +0100
commitd0c8fc8abb5891d11b17a0b97f6fce0b066bb6cc (patch)
treea710044184b92118ecf6232ed337299c1ff7f11a /lisp/net/tramp-cache.el
parent9d0cfcd67ddcfb664cef507b76dd439b3b7de805 (diff)
downloademacs-d0c8fc8abb5891d11b17a0b97f6fce0b066bb6cc.tar.gz
* net/tramp.el (tramp-handle-file-truename): Cache only the local
file name. * net/tramp-cache.el (tramp-flush-file-property): Flush also properties of linked files. (Bug#9879)
Diffstat (limited to 'lisp/net/tramp-cache.el')
-rw-r--r--lisp/net/tramp-cache.el5
1 files changed, 5 insertions, 0 deletions
diff --git a/lisp/net/tramp-cache.el b/lisp/net/tramp-cache.el
index b35ca3bbd18..56087a3aef6 100644
--- a/lisp/net/tramp-cache.el
+++ b/lisp/net/tramp-cache.el
@@ -162,6 +162,11 @@ FILE must be a local file name on a connection identified via VEC."
;;;###tramp-autoload
(defun tramp-flush-file-property (vec file)
"Remove all properties of FILE in the cache context of VEC."
+ ;; Remove file property of symlinks.
+ (let ((truename (tramp-get-file-property vec file "file-truename" nil)))
+ (when (and (stringp truename)
+ (not (string-equal file truename)))
+ (tramp-flush-file-property vec truename)))
;; Unify localname.
(setq vec (copy-sequence vec))
(aset vec 3 (tramp-run-real-handler 'directory-file-name (list file)))