Commit graph

26 commits

Author SHA1 Message Date
Thomas Waldmann
32320c2f9f FUSE: always create a root dir, fixes #1125
also: refactor / deduplicate directory creation
2016-07-29 00:24:18 +02:00
Lee Bousfield
d126265fe4
borg mount: cache partially read data chunks
Cherry-pick of bfb00df from master to 1.0-maint
2016-07-28 15:59:36 -04:00
Marian Beermann
5a952ec6df
fuse: clean imports, move mount to after __init__ *
* since the two are always called in direct succession and
  perform related setup.
2016-07-10 02:19:38 +02:00
Marian Beermann
cb4a52eb84
fuse: EIO on damaged files unless told not to (-o allow_damaged_files) 2016-07-10 02:19:30 +02:00
Marian Beermann
39f48419a0
fuse: fix directories being shadowed when contained paths where also specified 2016-07-09 02:31:41 +02:00
Marian Beermann
31bbdc3bee
Fix FUSE crash in xattr code on Linux introduced in 4d7b0f35 2016-07-07 20:33:48 +02:00
Thomas Waldmann
4d7b0f357a fuse: getxattr fail must use errno.ENOATTR, fixes #1126
The problem was that OS X Finder queried some OS X specific xattrs
and if they were not present, the wrong errno (ENODATA) was included
in the raised FUSEError exception. According to the llfuse docs, the
errno must be ENOATTR for this case.

Obviously, Finder didn't handle this well and denied access to the
file. Also, file size was displayed as "zero bytes" although we
return the correct value.
2016-07-07 03:38:21 +02:00
Mitch Bigelow
f406bf7879 fix incorrect _ns variables 2016-03-31 17:31:53 -04:00
Mitch Bigelow
353774973e file stats are packed with 'int_to_bigint' in the archive. Unpack these before passing to llfuse 2016-03-10 15:50:45 -05:00
Thomas Waldmann
44c8a4af80 fix pep8 failures 2016-02-17 01:05:04 +01:00
Nikolaus Rath
dbec05ab73 Make python-llfuse 0.42 compatible.
--HG--
extra : amend_source : 6004af01c4ee6f7ddf6f4138bfc9bbdf2a785eb2
2016-02-16 10:28:16 -08:00
Thomas Waldmann
4b339f5d69 cosmetic source cleanup (flake8) 2016-01-30 21:32:45 +01:00
Thomas Waldmann
fc52101d46 suppress unneeded exception context (PEP 409) 2016-01-24 15:36:04 +01:00
Thomas Waldmann
5ec2a3a49b use the RepositoryCache context manager also in fuse code 2016-01-17 00:30:00 +01:00
Thomas Waldmann
4d73f3cdb9 implement and use context manager for RepositoryCache, fixes #548 2016-01-17 00:30:00 +01:00
Thomas Waldmann
8671be1ef2 Increase FUSE read_size to 1024.
From https://github.com/borgbackup/borg/pull/480 discussion:

Did you try 1024 (linux cache block size) or 4096 (internal sector size of bigger
hdds, also used in msgpack fallback.py as lower bound, see link)?

I've tested different values - 512 and 1024 are slightly better than 4096 in my case.

read_size = 1    ls -laR: 75.57 sec
read_size = 64   ls -laR: 27.81 sec
read_size = 512          ls -laR: 27.40 sec
read_size = 1024         ls -laR: 27.20 sec
read_size = 4096         ls -laR: 30.15 sec
read_size = 0    ls -laR: 442.96 sec (default)

OK, maybe we should go for 1024 then. That happens to be < MTU size, so in case someone works on NFS
(or other network FS) we will have less reads, less network packets, less latency.
2015-12-10 10:09:06 +01:00
alex3d
3256f22c74 Optimized fuse inode cache
Single-shot unpacker read buffer decreased from (default) 1Mb to 512b.
"ls -alR" on ~100k files backup mounted with fuse went from ~7min to 30 seconds.
2015-12-09 00:34:25 +03:00
Antoine Beaupré
f13dd6e579 completely remove have_cython() hack
this was making us require mock, which is really a test component and
shouldn't be part of the runtime dependencies. furthermore, it was
making the imports and the code more brittle: it may have been
possible that, through an environment variable, backups could be
corrupted because mock libraries would be configured instead of real
once, which is a risk we shouldn't be taking.

finally, this was used only to build docs, which we will build and
commit to git by hand with a fully working borg when relevant.

see #384.
2015-11-13 10:40:53 -05:00
Thomas Waldmann
c492011a92 backup atime and ctime additionally to mtime, fixes #317
restore: mtime and atime
FUSE: support ctime and atime additionally to mtime
2015-10-26 02:07:55 +01:00
Antoine Beaupré
1c61f87da3 remove debugging code and fix all have_cython calls 2015-10-08 17:20:52 -04:00
Antoine Beaupré
a869ab0702 try to fix RTD build *again* *again* 2015-10-08 17:03:35 -04:00
TW
4b81f380f8 Merge pull request #88 from ThomasWaldmann/py3style
style and cosmetic fixes, no semantic changes
2015-07-11 18:39:42 +02:00
Thomas Waldmann
0580f2b4eb style and cosmetic fixes, no semantic changes
use simpler super() syntax of python 3.x

remove fixed errors/warnings' codes from setup.cfg flake8 configuration

fix file exclusion list for flake8
2015-07-11 18:31:49 +02:00
Thomas Waldmann
a59211f295 use borg-tmp as prefix for temporary files / directories
also: remove some unused temp dir. code
2015-07-11 17:22:12 +02:00
Thomas Waldmann
5e98400a5a fix all references to package name
use relative imports if possible
reorder imports (1. stdlib 2. dependencies 3. borg 4. borg.testsuite)
2015-05-22 19:21:41 +02:00
Thomas Waldmann
78bfc58b47 rename package directory to borg 2015-05-22 17:48:54 +02:00
Renamed from attic/fuse.py (Browse further)