- 01 May, 2024 2 commits
-
-
Jakob Unterwurzacher authored
Calling Serve() multiple times leads to a panic on unmount and fun debugging sessions ( https://github.com/hanwen/go-fuse/issues/512 ). Catch it early. Change-Id: I3c490448fa3b8407a6db1bd8ad94b8a4e1a93828
-
Jakob Unterwurzacher authored
Per default, only 1000 FUSE mounts are allowed, then you get > /usr/bin/fusermount3: too many FUSE filesystems mounted; mount_max=N can be set in /etc/fuse.conf Let's stay well below 1000 as there may be other (unrelated) FUSE mounts also occupying slots. Change-Id: I2e2e094a88236ff803abba3722395c29207c8571
-
- 30 Apr, 2024 1 commit
-
-
lch authored
Change-Id: Iffa5314fbe171d182a4bdef42e0ab4781cc1d221
-
- 21 Apr, 2024 1 commit
-
-
lch authored
Prefer x/sys/unix over syscall package, which supports FreeBSD. Change-Id: Ifd3a0fd6d2b90369a6e1e74d92606a655815a6a4
-
- 20 Apr, 2024 2 commits
- 14 Apr, 2024 2 commits
- 12 Apr, 2024 5 commits
-
-
lch authored
Change-Id: I8ff8e8dc9431b5af52e3ca8e78f0da73cead9008
-
lch authored
Change-Id: Ibc41b9efc62f89359e712def53b1cfc1dd4c24fc
-
lch authored
Both FreeBSD and Darwin must use a single reader to access the FUSE device. Change-Id: I51c467bb0b8e1fda871665d033dd89d11fbe961c
-
lch authored
fuse: merge attr definition of Darwin and FreeBSD Change-Id: I7229229aed8afad74089bc2ce7eff0b86bd2ccd0
-
lch authored
Change-Id: I7caa793f1b7a2c3601094ca46e1a3812e763e813
-
- 08 Apr, 2024 3 commits
- 25 Mar, 2024 2 commits
-
-
Han-Wen Nienhuys authored
Thanks to https://github.com/likeazir for spotting this Change-Id: I0952482886cfadb23c723d89a64fd4ced1b57c92
-
Han-Wen Nienhuys authored
This avoids spurious error messages when unmounting a file system directly after closing a file. Fixes #505 Change-Id: I3a6a6ada0b5e5abe95a1d7965a48ddb46664310a
-
- 24 Mar, 2024 1 commit
-
-
Han-Wen Nienhuys authored
Commit 1aa7b7b2 ("fs: document known deadlocks") describes a deadlock scenario where inheriting file descriptors triggers a spurious close during subprocess setup, leading to deadlock. This exact scenario actually happens when setting up the FUSE mount using fusermount: the fusermount process inherits one half of a socket pair, which is used to pass back the opened /dev/fuse file. After the mount is successful, we open a file in the FUSE mount for the poll hack. This means that in parallel scenarios, we may use fd 3 as the poll hack, while also calling fusermount with inherited file descriptors. Solve this by grabbing fd 3 during initialization. This is not completely foolproof, as FD 0, 1 and 2 could be closed (and then reused) after initialization finished, but this should be uncommon as 0, 1 and 2 are standard input/output/error. Doing it during the init phase means that we prevent deadlock for all users that inherit single file descriptors. Change-Id: If5ac7c941f0ee2e13ca657c31d056a676eed3fde
-
- 09 Feb, 2024 1 commit
-
-
Han-Wen Nienhuys authored
On amd64, syscall.O_LARGEFILE is 0x0, making it be ignored as a key. However, the kernel always passes 0x8000 to the FUSE server for the OPEN call. The previous behavior causes crashes on 386, because the flagname is added twice. Change-Id: Ibabcdfef4d90e4fa4d02963d45a4d4cf2cba1ea2
-
- 20 Nov, 2023 1 commit
-
-
Glonee authored
make mount procedure cleaner by using standard library to parse socker control message Change-Id: Ic52f5a0e2ddda40e680e341e35fb9b4158ba3324
-
- 13 Nov, 2023 2 commits
-
-
Dmitriy Smotrov authored
Tested on MacOS 14.2 (macfuse 4.5.0) and Ubuntu 20.04.2 (Linux 5.15.0) Change-Id: I3f4f92c2d2aa3f4fc3696b661fa3cb0e3b43282b
-
Han-Wen Nienhuys authored
Change-Id: I43f09613acd119daefe64350a46f79d58b2e4b6a
-
- 10 Nov, 2023 2 commits
-
-
Dmitriy Smotrov authored
MacOS flags list retrieved from latest source version of MACFUSE library https://github.com/macfuse/library/blob/eee4f806272fcfba3c8ee662647068f8e3abab72/include/fuse_common.h Tested on MacOS 14.2 (macfuse 4.5.0) and Alpine 3.18 in Docker (Linux 6.4) Change-Id: Ia8a00aa915f37553d5c89612eeced816dc8fc997
-
Dmitriy Smotrov authored
`CAP_SETXATTR_EXT,CAP_INIT_EXT,CAP_INIT_RESERVED` opcodes conflicts with osxfuse `CAP_CASE_INSENSITIVE,CAP_VOL_RENAME,CAP_XTIMES` opcodes, that's causing panic, so it should be moved into linux specific build. Change-Id: I0916ea0bd2c169a0aa1f654ef015799fa0e5084e
-
- 08 Nov, 2023 2 commits
-
-
Han-Wen Nienhuys authored
Change-Id: I1e10f22dc13207277af45cbbc2ac6740c9d4e36e
-
Han-Wen Nienhuys authored
As part of the fork/exec sequence, file descriptors that should be inherited are remapped with dup3() in the chld process. This causes implicit file close operations. If the file descriptors are backed by FUSE, this leads to FLUSH operations. If parallelism is limited with GOMAXPROCS, this can cause a deadlock, as there will not be threads left to service the FLUSH opcodes. Fixes #489 Change-Id: I81bf4ab0624495aabb5bb9ec42a55c6f23340beb
-
- 05 Nov, 2023 1 commit
-
-
Han-Wen Nienhuys authored
This avoids one allocation under lock (calling sync.Pool.Put converts to interface{}) Change-Id: Icfe155e34300dca398cea99b73bc5e10fd362ae3
-
- 01 Oct, 2023 1 commit
-
-
Yasin Turan authored
The man page for lseek(2) says that the filesystem should return an ENXIO when the offset is greater than the file size on either SEEK_DATA or SEEK_HOLE or if the offset is set to the end of the file with SEEK_DATA (where there is an implicit hole). Adding these checks to the current Lseek implementation. Change-Id: I8db0913a9e37209e1681ffd11a9afb7f39810132
-
- 30 Sep, 2023 1 commit
-
-
Han-Wen Nienhuys authored
Change-Id: I4c61fa0f522fa07d0c02d8c7261a6c82ab6756a8
-
- 18 Sep, 2023 2 commits
-
-
Han-Wen Nienhuys authored
Change-Id: Id9812b765e6bdf06f92c2723d03112dca99faa36
-
Han-Wen Nienhuys authored
Change-Id: Ia1e8e20f5646a0958f4ede5cf20f565c63f0bb7f
-
- 11 Sep, 2023 1 commit
-
-
Han-Wen Nienhuys authored
This adds opcodes and capabilities from this week's upstream kernel. As of commit 53db28933 ("fuse: extend init flags"), the init message has been extended to 104 bytes, with more flags added in a flags2 field. Prepare for this by allowing _OP_INIT to have short reads. Tested on Fedora 38 (Linux 6.4.14) and Fedora 34 (Linux 5.11) Change-Id: I366ecda9e23f1a329134677075ee839674ff4c57
-
- 10 Sep, 2023 2 commits
-
-
Han-Wen Nienhuys authored
Change-Id: Icfae201b99d75b308ad5c4f3c96a0f5800127f62
-
Han-Wen Nienhuys authored
Change-Id: I123f731802663adc2603d9bc34f5e376b6607fe5
-
- 09 Sep, 2023 1 commit
-
-
Brandon Duffany authored
Fixes an issue that the init() func in splice.go panics if /dev is not yet mounted. This allows supporting go-based init binaries which set up all the filesystems on the machine, including both /dev as well as FUSE-mounted dirs. Change-Id: I74dab18effe4df410689ae7a2ef43670fcab7bd8
-
- 28 Aug, 2023 1 commit
-
-
Han-Wen Nienhuys authored
This allows for specializing the debug output. Change-Id: Id6a24fd6207253af3f32ca0f7ed51db3db31ced4
-
- 22 Jun, 2023 2 commits
-
-
Han-Wen Nienhuys authored
Keep children in a slice of {name,*Inode} tuples, separately indexed by a string map. This ensures that we can return the children in insertion order. This fixes #476 and #391, and opens the road to NFS-compatible readdir cookies. Change-Id: I79b3483f4b12e67b63543da1294f725029a9139a
-
Han-Wen Nienhuys authored
Encapsulates the handling the children map, in preparation of changing the representation. It also reduces repetition for handling the parents field and changeCounter Change-Id: Ic741a376c6261dab606ed0705cdd130e70c8b69e
-
- 21 Jun, 2023 1 commit
-
-
Jakob Unterwurzacher authored
As evidenced by the test failures that are reported, the `Optional` may change value between mounts. Ignore it in the comparison. --- FAIL: TestDirectMount (0.14s) mount_linux_test.go:173: DirectMount effective mount options mismatch: DirectMount: mountinfo.Info{ID:0, Parent:0, Major:0, Minor:0, Root:"", Mountpoint:"", Options:"rw,nosuid,nodev,relatime", Optional:"shared:417", FSType:"fuse./tmp/go-build3776165", Source:"a,b", VFSOptions:"rw,user_id=1000,group_id=1000,max_read=131072"} fusermount: mountinfo.Info{ID:0, Parent:0, Major:0, Minor:0, Root:"", Mountpoint:"", Options:"rw,nosuid,nodev,relatime", Optional:"shared:373", FSType:"fuse./tmp/go-build3776165", Source:"a,b", VFSOptions:"rw,user_id=1000,group_id=1000,max_read=131072"} Fixes https://github.com/hanwen/go-fuse/issues/481 Change-Id: Ie8105cf4bec7e7f461267217860cbf36e47ed329
-