summaryrefslogtreecommitdiff
path: root/Annex/Ssh.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Annex/Ssh.hs')
-rw-r--r--Annex/Ssh.hs12
1 files changed, 7 insertions, 5 deletions
diff --git a/Annex/Ssh.hs b/Annex/Ssh.hs
index 99b3c4435..940cbb5a7 100644
--- a/Annex/Ssh.hs
+++ b/Annex/Ssh.hs
@@ -63,16 +63,18 @@ sshInfo (host, port) = go =<< sshCacheDir
, Params "-o ControlMaster=auto -o ControlPersist=yes"
]
-{- ssh connection caching creates sockets, so will not work on all file
- - systems. A GIT_ANNEX_TMP_DIR can be provided to use
+{- ssh connection caching creates sockets, so will not work on a
+ - crippled filesystem. A GIT_ANNEX_TMP_DIR can be provided to use
- a different filesystem. -}
sshCacheDir :: Annex (Maybe FilePath)
sshCacheDir
- | SysConfig.sshconnectioncaching =
- ifM (fromMaybe True . annexSshCaching <$> Annex.getGitConfig)
+ | SysConfig.sshconnectioncaching = ifM crippledFileSystem
+ ( maybe (return Nothing) usetmpdir =<< gettmpdir
+ , ifM (fromMaybe True . annexSshCaching <$> Annex.getGitConfig)
( Just <$> fromRepo gitAnnexSshDir
- , maybe (return Nothing) usetmpdir =<< gettmpdir
+ , return Nothing
)
+ )
| otherwise = return Nothing
where
gettmpdir = liftIO $ getEnv "GIT_ANNEX_TMP_DIR"