Commit Graph

108 Commits (master)

Author SHA1 Message Date
Vitaliy Filippov efe41d860d Add READDIRPLUS support 2023-08-03 15:36:17 +03:00
Vitaliy Filippov caac53a719 Add notification ops and conversions 2023-03-23 19:00:51 +03:00
Vitaliy Filippov f54cd84222 Allow to use "zero-copy" writes 2022-11-01 20:56:02 +03:00
Michael Stapelberg 66d6bd9e7b gofmt with Go 1.19 2022-09-06 08:42:56 +02:00
Vitaliy Filippov c818f6216b Implement vectored read support
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.
2022-03-03 09:25:18 +01:00
mcdhee-msft 95fc8d1181
Add configuration to control async reads (#105) 2021-09-04 17:48:39 +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
Luke Alonso 05606cde59 Don't log ERANGE for ListXattrOp.
ListXattrOp behaves similarly to GetXattrOp in that you have to
return ERANGE in order to indicate the size of the attribute list,
so logging errors isn't warranted.
2020-07-06 09:55:24 +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
Arran Walker 5ee7049312 replace imports of "golang.org/x/net/context" with "context" 2018-02-07 19:18:23 +00:00
Ka-Hing Cheung d20c4665c1 GetXattr/ListXattr implementation 2017-05-11 14:45:40 -07:00
Aaron Jacobs dc1be2d5b8 Update documentation for Go style. 2017-01-03 10:47:18 +11:00
Aaron Jacobs 0b9db0a706 fuse: improve debug logging, including more inode and name info.
To aid in debugging GoogleCloudPlatform/gcsfuse#170.
2016-05-16 10:07:28 +10:00
Aaron Jacobs 5921525aab Removed special handling of statfs. 2015-09-09 09:49:54 +10:00
Aaron Jacobs f40a24c8d5 Pay attention to DisableWritebackCaching. 2015-08-12 02:32:39 +00:00
Aaron Jacobs ed6f72d078 Updated a TODO. 2015-08-12 00:48:00 +00:00
Aaron Jacobs df888905ab Set InitWritebackCache. 2015-08-11 06:32:54 +00:00
Aaron Jacobs 41ea2b7530 Don't repeat the op when logging the response.
Doing so adds lots of visual clutter.
2015-08-06 15:37:32 +10:00
Aaron Jacobs 348ed9e731 Disabled async reads.
Allowing the kernel to send multiple reads for the same file handle
concurrently interferes with sequential read detection like that in
GoogleCloudPlatform/gcsfuse#103.
2015-08-05 11:09:20 +10:00
Aaron Jacobs 263bbab5dd Don't log errors that we expect to happen regularly.
For GoogleCloudPlatform/gcsfuse#99.
2015-08-03 13:15:29 +10:00
Aaron Jacobs 9e84136ee5 Don't run sprintf when unnecessary. 2015-07-29 15:13:22 +10:00
Aaron Jacobs 96b8ce71f0 Fixed a bug: the flags parameter is in and out. 2015-07-29 14:53:09 +10:00
Aaron Jacobs 3f954b3056 Enable async reads.
As best I can tell, this instructs the kernel not to synchronize on the
completion of a read request before sending further requests. This
definitely means further read requests, but I believe it means any sort
of request as well. It appears to make a big difference to gcsfuse read
support.
2015-07-29 14:53:09 +10:00
Aaron Jacobs 94e31a27b6 Use the fuse ID in debug logs.
It's too confusing with a distinct set of IDs for logging.
2015-07-29 14:29:31 +10:00
Aaron Jacobs c80811a735 Don't spam the everloving shit out of the console for debug logging. 2015-07-29 12:02:58 +10:00
Aaron Jacobs bbb262ee48 Read directly into out messages for files. 2015-07-29 11:02:29 +10:00
Aaron Jacobs 2e422a1305 Move where out messages are created. 2015-07-29 10:51:24 +10:00
Aaron Jacobs d903c709d3 Refactored allocation out OutMessage structs.
In preparation for allocating them up-front for ReadFile and ReadDir.
2015-07-29 10:47:41 +10:00
Aaron Jacobs 5238806cff Connection.Reply 2015-07-28 16:14:58 +10:00
Aaron Jacobs 0becfa3df2 Began fixing Connection. 2015-07-28 16:13:18 +10:00
Aaron Jacobs 3845b0f124 Use freelist.Freelist for buffer.InMessage. 2015-07-28 12:59:44 +10:00
Aaron Jacobs 9232b8275f Don't convert uint64 to interface{} for the context key every time.
This accounts for ~80% of gcsfuse allocations.
2015-07-28 12:52:38 +10:00
Aaron Jacobs c968295acd Don't spam the error logger so much. 2015-07-27 16:03:58 +10:00
Aaron Jacobs 95a6177c0c Fixed redundant internal op names. 2015-07-27 15:52:13 +10:00
Aaron Jacobs 9441e60ece Don't write zero-length replies. 2015-07-27 15:50:05 +10:00
Aaron Jacobs 3755e3c1a1 Fixed package fuse. 2015-07-27 15:43:41 +10:00
Aaron Jacobs ef3d11e2b1 It seems the write returns errors as a matter of course when unmounting. 2015-07-27 15:40:11 +10:00
Aaron Jacobs 9b9a86cf80 Fixed Connection.Reply. 2015-07-27 15:33:33 +10:00
Aaron Jacobs 448c910c13 Write some of Connection.Reply. 2015-07-27 15:21:07 +10:00
Aaron Jacobs dd1fcfedf5 Fixed more build errors. 2015-07-27 15:12:43 +10:00
Aaron Jacobs d6d4cb87c5 Fixed Connection.Init. 2015-07-27 15:10:00 +10:00
Aaron Jacobs fd0e095b3b Reimplemented ReadOp. 2015-07-27 15:08:41 +10:00
Aaron Jacobs 8c5f6d8685 Updated the ReadOp signature. 2015-07-27 14:52:35 +10:00
Aaron Jacobs 585af56849 Fixed a few more build errors. 2015-07-27 14:28:44 +10:00
Aaron Jacobs 623ae99fae Fixed a build error. 2015-07-27 14:27:34 +10:00
Aaron Jacobs 41dd5f04f5 Use a freelist for buffer.InMessage structs. 2015-07-27 13:20:28 +10:00
Aaron Jacobs a07a396c6a Added support for init ops. 2015-07-24 16:35:14 +10:00
Aaron Jacobs 6a25a1071c Connection.Init 2015-07-24 16:29:59 +10:00