- 10 Jan, 2016 1 commit
-
-
Jakob Unterwurzacher authored
go-fuse is currently lagging behind libfuse in terms of small-file performance due to GC overhead. In preparation to optimizing the code, this patch makes cpu and mem profiling easier.
-
- 09 Jan, 2016 1 commit
-
-
Jakob Unterwurzacher authored
Properly implementing Utimens caused the OSX build to break because the utimensat system call is not available there. This patch reverts the OSX implementation of Utimens to using syscall.Utimes(). This is not actually correct but the best we can do. Thanks to @spaghetti2514 who reported the issue and tested the patches.
-
- 17 Dec, 2015 2 commits
-
-
Han-Wen Nienhuys authored
-
Yongwoo Park authored
fuse.EntryOut can be corrupted if FS implementation does not set all fileds in the Lookup of rawFS go-mtpfs displays wrong information(ls -l) for directory(size, Nlink, ..)
-
- 15 Dec, 2015 2 commits
-
-
Eliot Courtney authored
-
Jakob Unterwurzacher authored
The problem was that os.Chtimes() operates on the target of the symlink and not on the symlink itself. When tar extracts an archive containing a symlink, it actually wants to set the times on the symlink. This can also be tested using "touch -h". This patch adds a wrapper for the Linux utimensat(2) syscall that allows passing flags along with a unit test. It uses the flag AT_SYMLINK_NOFOLLOW to implement loopbackFileSystem.Utimens() properly. It also add handling for UTIME_NOW and UTIME_OMIT that was already present in loopbackFile.Utimens() but missing in loopbackFileSystem. Fixes issue 81 ( https://github.com/hanwen/go-fuse/issues/81 ).
-
- 07 Dec, 2015 2 commits
-
-
Han-Wen Nienhuys authored
-
Eliot Courtney authored
-
- 01 Dec, 2015 1 commit
-
-
Han-Wen Nienhuys authored
This stops programs from crashing if fusermount is not there.
-
- 28 Oct, 2015 1 commit
-
-
Jakob Unterwurzacher authored
Fixes issue #69
-
- 22 Oct, 2015 1 commit
-
-
Jakob Unterwurzacher authored
...if it has already been set by the filesystem. "out.Ino" is the user-facing inode number that is displayed by "ls -li". This change allows loopback filesystems to expose the inode number of the underlying filesystem. As a "real" inode number, this one is stable for the lifetime of the file, even across remounts. libfuse has the `use_ino` option that allows the inode numbers to be set arbitrarily as well. This has been used by EncFS for years. The Linux kernel stores the inode number in `orig_ino`. Grepping in `fs/fuse` shows that it is only read once in `fuse_update_attributes`, and only if the `stat` argument is not NULL. There is only one caller that passes that argument: `fuse_getattr`. In short, the kernel does not use the inode number for anything but reporting it via `stat()`, hence setting the inode number is safe. This functionality will be used for improving log output in gocryptfs, where file names cannot be used because they are encrypted.
-
- 11 Oct, 2015 4 commits
-
-
Jakob Unterwurzacher authored
The entries should exist on any filesystem. Fixes issue #62
-
Jakob Unterwurzacher authored
We have to use the low-level function syscall.Getdents because os.Readdir and friends will filter out "." and "..".
-
Jakob Unterwurzacher authored
Futimes only takes microsecond resolution while the FUSE call Utimens wants nanosecond precision. Switch from Futimes to futimens. This is why UTIME_OMIT did not work - this change fixes the failure of xfstests generic/221 (issue #60).
-
Jakob Unterwurzacher authored
This function is neither provided by the syscall package nor x/sys/unix.
-
- 30 Sep, 2015 1 commit
-
-
Han-Wen Nienhuys authored
-
- 29 Sep, 2015 5 commits
-
-
Jakob Unterwurzacher authored
syscall.NsecToTimespec does not work properly for times before 1970, see https://github.com/golang/go/issues/12777 This caused xfstests generic/258 to fail. Fixes issue #58.
-
Jakob Unterwurzacher authored
Merge into files.go
-
Han-Wen Nienhuys authored
We can only do the lookup if we are sure that we will return the result to the kernel, otherwise our lookup counts will go out of sync with the kernel. As a bonus, this removes the allocation for the EntryOut data structure, since we can write directly into the readdirplus return data. Add a port of the xfstest generic/257 that triggered this bug. Fixes #57.
-
Jakob Unterwurzacher authored
The old implementation was buggy and failed xfstests generic/001 (last 1kB of some files were filled with zeros). The new one introduces a second splice layer to get rid of recursion and passes generic/001. Fixes issue #54.
-
Jakob Unterwurzacher authored
Assuming that the loopback example binary is at /bin/loopbackfs, you can mount like this: mount -t fuse.loopbackfs /tmp/mountpoint /tmp/original However, "mount" passes an empty PATH to loopbackfs. Trying the absolute path too fixes the issue. This is in preparation of porting xfstests to go-fuse.
-
- 24 Sep, 2015 4 commits
-
-
Jakob Unterwurzacher authored
Now passes xfstests generic/053 Fixes issue #56
-
Jakob Unterwurzacher authored
-
Jakob Unterwurzacher authored
-
Jakob Unterwurzacher authored
"df -T" output: Before: Filesystem Type 1K-blocks Used Available Use% Mounted on pathfs.pathInode fuse.pathfs.pathInode 4015252 3219628 795624 81% /tmp/mountpoint After: Filesystem Type 1K-blocks Used Available Use% Mounted on /tmp/original fuse.loopbackfs 4015252 3219620 795632 81% /tmp/mountpoint
-
- 27 Jun, 2015 1 commit
-
-
Ivan Volosyuk authored
-
- 22 Apr, 2015 7 commits
-
-
Frederick Akalin authored
-
Frederick Akalin authored
-
Frederick Akalin authored
-
Frederick Akalin authored
-
Frederick Akalin authored
-
Frederick Akalin authored
-
Frederick Akalin authored
EINTR is commonly encountered when running under a debugger, so this change makes it possible to do so without hitting spurious EINTR errors.
-
- 21 Apr, 2015 1 commit
-
-
Frederick Akalin authored
Fixes #39.
-
- 03 Apr, 2015 3 commits
-
-
Daniel Martí authored
-
Daniel Martí authored
-
Daniel Martí authored
-
- 18 Mar, 2015 2 commits
-
-
Han-Wen Nienhuys authored
-
Han-Wen Nienhuys authored
This makes automated import rewriting more robust.
-
- 04 Mar, 2015 1 commit
-
-
Han-Wen Nienhuys authored
The code confuses the race-detector, and the work-arounds to fool the race-detector fools humans. No conclusive benchmark data supports the usefulness of the handle maps.
-