- 06 Feb, 2016 1 commit
-
-
Jakob Unterwurzacher authored
If the file handle is specified we should use it instead of picking one at random. Note that the only real change is for ftruncate. For fstat, fchown and fchmod the kernel currently never passes a file descriptor. Fixes #95.
-
- 03 Feb, 2016 1 commit
-
-
Han-Wen Nienhuys authored
-
- 02 Feb, 2016 6 commits
-
-
Han-Wen Nienhuys authored
This lets you Mount multiple nodes in parallel.
-
Han-Wen Nienhuys authored
-
Han-Wen Nienhuys authored
This prevents data races flagged by the race detector.
-
Han-Wen Nienhuys authored
-
Han-Wen Nienhuys authored
This fixes the data race in TestDeleteNotify.
-
Han-Wen Nienhuys authored
-
- 21 Jan, 2016 2 commits
-
-
Yongwoo Park authored
time.Unix() returns int64 regardless of target platform but timeval is defined as int32 values on ubuntu-32bit NsecToTimeval has a nanosecond problem(negative value) before epoch but still can use second
-
Yongwoo Park authored
-
- 14 Jan, 2016 8 commits
-
-
Han-Wen Nienhuys authored
-
Han-Wen Nienhuys authored
-
Han-Wen Nienhuys authored
-
Han-Wen Nienhuys authored
-
Han-Wen Nienhuys authored
-
Han-Wen Nienhuys authored
-
Han-Wen Nienhuys authored
It was broken in 1b3f7953, which removed the possibility of trivially inspecting go-fuse internal inode numbers.
-
Han-Wen Nienhuys authored
-
- 10 Jan, 2016 2 commits
-
-
Jakob Unterwurzacher authored
Due to a typo, returnRequest never actually returned the read buffer to readPool. Also, we want to put the complete buffer back into the pool - this caused errors later on. loopback "tar xzf ../linux-3.0.tar.gz" timings: before: 35 seconds after: 10 seconds
-
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.
-