Vitaliy Filippov
575b70f3fd
Allow to use "zero-copy" writes
2021-09-01 14:14:51 +03:00
Vitaliy Filippov
fcabfc89e9
Introduce VectoredReadOp
...
Read requests can now take vectored responses from the filesystem
implementation and send them to FUSE device via the writev() system call.
This allows file systems to send data without copying it into the
library-provided buffer if the data is already in memory.
The change also speeds up normal ReadFileOps as a side effect because
it removes extra memory allocations.
2021-09-01 14:14:15 +03:00
Andrew Gaul
7782064498
Calculate pageSize and bufSize at run-time ( #102 )
...
ARM-based macOS uses 16 KB pages instead of 4 KB. Fixes
GoogleCloudPlatform/gcsfuse#548 .
2021-08-11 21:31:10 +02:00
Kurt Jensen
d82237972e
Add support for max_pages and increase to 256 ( #96 )
...
* Bump protocol version to min 7.28, max 7.31
* Increase read/write buffer size to 1MiB
* Add new fields to initOp
* Set FUSE_MAX_PAGES flag for init
* Lower min minor version to 19 for osxfuse
* Fix linux WriteSize test
2021-08-02 23:29:12 +02:00
Michael Stapelberg
0630024b2b
switch from assembly stubs to go:linkname comment
...
The go:linkname way works with Go 1.17 (with regabi), too.
Upstream did this in 2015 in
0b8d583320
See also https://sitano.github.io/2016/04/28/golang-private/ for more background
about both techniques.
2021-08-02 09:34:49 +02:00
Brendan McMillion
1ec76bd410
Add ARM support. ( #85 )
2020-06-26 07:45:43 +02:00
Michael Stapelberg
2f65426467
implement NoOpenSupport and NoOpendirSupport
...
See also:
7678ac5061
d7afaec0b5
d9a9ea94f7
2020-02-15 08:31:54 +01:00
Michael Stapelberg
7c2b569250
implement symlink caching
2020-02-15 08:04:53 +01:00
Michael Stapelberg
ae5da07e4c
remove naked returns across the code base ( #75 )
...
fixes #73
2020-01-28 10:10:08 +01:00
Ka-Hing Cheung
4ee1cf7f62
add support for fallocate ( #66 )
...
* Fallocate support
* use fallocate wrapper that works on darwin
2019-10-26 10:15:00 +02:00
Michael Stapelberg
90d933551c
fix formatting directives (to pass go test)
2019-09-16 18:28:45 +02:00
Ka-Hing Cheung
d20c4665c1
GetXattr/ListXattr implementation
2017-05-11 14:45:40 -07:00
Aaron Jacobs
cea04881bd
buffer: generate decent code for OutMessage.Reset in Go 1.8 beta 2.
2016-12-19 14:41:59 +11:00
Aaron Jacobs
bd496ea048
buffer: don't use memclr for the tiny header, whose size is known.
2016-12-19 13:58:09 +11:00
Aaron Jacobs
05b4591414
buffer: split runtime.s into pre- and post-Go 1.8 files.
...
Go 1.8 renamed this function; cf. golang/go@87e48c5 .
2016-12-19 13:50:20 +11:00
Aaron Jacobs
0cd689f560
buffer: simplify storage of the header.
2016-12-19 13:14:54 +11:00
Aaron Jacobs
d1ff915b0b
OutMessage.OutHeader
2016-12-19 13:14:54 +11:00
Aaron Jacobs
849f53b080
OutMessage.ShrinkTo
2016-12-19 13:14:54 +11:00
Aaron Jacobs
e03fa52bbf
OutMessage.Grow
2016-12-19 13:14:54 +11:00
Aaron Jacobs
d1ed507a5a
OutMessage.GrowNoZero
2016-12-19 13:14:54 +11:00
Aaron Jacobs
a7c1a1474a
buffer_test: fix build errors.
2016-12-19 13:14:54 +11:00
Aaron Jacobs
0a22738acf
OutMessage.Bytes
2016-12-19 13:14:21 +11:00
Aaron Jacobs
6f4af61734
buffer: consistently use 'm' for OutMessage receivers.
2016-12-19 13:14:21 +11:00
Aaron Jacobs
98a2b634bf
OutMessage.Reset
2016-12-19 13:14:21 +11:00
Aaron Jacobs
9eb5e0793f
buffer: define OutMessage's contents.
2016-12-19 13:14:21 +11:00
Aaron Jacobs
6e5247d16d
buffer_test: make use of the new API.
2016-12-19 13:14:21 +11:00
Aaron Jacobs
0f6db15c59
buffer: give OutMessage's public API a makeover.
...
Use int where appropriate, fix up documentation, and clarify. Delete the
implementation where it will soon need to change.
2016-12-19 13:14:21 +11:00
Aaron Jacobs
10bc0e766c
buffer_test: fix computation of the number of bytes cleared.
2016-12-19 13:14:05 +11:00
Aaron Jacobs
06b9c19b5e
TestOutMessageHeader
2016-12-19 12:38:58 +11:00
Aaron Jacobs
78a1450a77
TestOutMessageShrinkTo
2016-12-19 12:32:22 +11:00
Aaron Jacobs
39f1f7c489
TestOutMessageAppendString
2016-12-19 12:31:08 +11:00
Aaron Jacobs
c1af0dbdee
TestOutMessageAppend
2016-12-19 12:30:42 +11:00
Aaron Jacobs
e7b9860f41
buffer_test: expand the coverage of TestOutMessageGrow.
2016-12-19 12:26:59 +11:00
Aaron Jacobs
02e3f7895c
buffer_test: expand the coverage of TestOutMessageReset.
2016-12-19 12:20:27 +11:00
Aaron Jacobs
f250e46e83
buffer_test: add TODOs where more test coverage is necessary.
2016-12-19 12:16:51 +11:00
Aaron Jacobs
ad65849346
Add a test for OutMessage.Grow.
2016-12-19 11:17:33 +11:00
Aaron Jacobs
e329c0ef33
Add a test for OutMessage.Reset.
2016-12-19 11:17:33 +11:00
Aaron Jacobs
72fc9c96ca
Add a benchmark for growing and shrinking.
...
This should better stress memclr.
2016-12-19 10:35:20 +11:00
Aaron Jacobs
b87ffb528b
Fix a bug in BenchmarkOutMessageReset.
...
I misunderstood what was being zeroed. Only the header is.
2016-12-19 10:26:19 +11:00
Aaron Jacobs
d31e0a4eae
Add a test for memclr.
2016-12-19 10:19:29 +11:00
Aaron Jacobs
92e3407014
Add benchmarks for OutMessage.Reset.
2016-12-19 09:46:08 +11:00
Aaron Jacobs
81de9fb6cc
Made the message shrinking API less confusing.
2015-08-10 15:45:46 +10:00
Aaron Jacobs
bbb262ee48
Read directly into out messages for files.
2015-07-29 11:02:29 +10:00
Aaron Jacobs
240465913f
Fixed the build on Linux.
2015-07-28 16:31:59 +10:00
Aaron Jacobs
a1fc133e32
Finished OutMessage.
2015-07-28 16:29:30 +10:00
Aaron Jacobs
a25c297e41
OutMessage.AppendString
2015-07-28 16:29:09 +10:00
Aaron Jacobs
bb88db68e0
OutMessage.Append
2015-07-28 16:28:21 +10:00
Aaron Jacobs
75e2706a4b
Renamed two files.
2015-07-28 16:26:42 +10:00
Aaron Jacobs
e2aa0ec1be
OutMessage.GrowNoZero
2015-07-28 16:24:45 +10:00
Aaron Jacobs
9a55ffcd7d
OutMessage.Grow
2015-07-28 16:23:59 +10:00