Commit Graph

1447 Commits (9677d0392291693bd7b462a199a86f9f226a71be)

Author SHA1 Message Date
Aaron Jacobs 00b92df61c Don't forget to close the opened files. 2015-08-04 02:19:21 +00:00
Aaron Jacobs 589f6c3c98 Added a test for various file system error conditions.
This reproduces the writeMessage errors from
GoogleCloudPlatform/gcsfuse#101.
2015-08-04 09:04:31 +10:00
Aaron Jacobs ad3a463488 Implemented dir methods. 2015-08-04 09:03:22 +10:00
Aaron Jacobs 7943ab5bf4 ErrorFSTest.ReadDir 2015-08-04 09:01:53 +10:00
Aaron Jacobs e22f698dd3 ErrorFSTest.OpenDir 2015-08-04 09:01:02 +10:00
Aaron Jacobs e6a4db9920 errorFS.ReadFile 2015-08-04 09:00:38 +10:00
Aaron Jacobs e5d377b531 ErrorFSTest.ReadFile 2015-08-04 08:59:34 +10:00
Aaron Jacobs 1ea2e82165 errorFS.OpenFile 2015-08-04 08:48:03 +10:00
Aaron Jacobs 54db03b63d errorFS.LookUpInode 2015-08-04 08:45:51 +10:00
Aaron Jacobs c71b2cbf33 Fixed two bugs. 2015-08-04 08:42:51 +10:00
Aaron Jacobs c3601bff1c errorFS.GetInodeAttributes 2015-08-04 08:40:38 +10:00
Aaron Jacobs 978399a268 errorFS.SetError 2015-08-04 08:35:59 +10:00
Aaron Jacobs 8aecb35541 ErrorFSTest.OpenFile 2015-08-04 08:31:51 +10:00
Aaron Jacobs e1bfc5006b Added test names. 2015-08-04 08:29:38 +10:00
Aaron Jacobs 4df87deabd Added a test stub. 2015-08-04 08:27:55 +10:00
Aaron Jacobs 81a6d3d466 Declared errorfs.FS and a factory. 2015-08-04 08:24:16 +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 13eb2958d3 Added support for telling Linux not to abandon the page cache on open. 2015-07-29 16:25:39 +10:00
Aaron Jacobs eacbdb8d51 Disabled a test for a feature that doesn't work on OS X. 2015-07-29 16:24:47 +10:00
Aaron Jacobs a88ad8dbf2 Added support for KeepPageCache. 2015-07-29 05:53:46 +00:00
Aaron Jacobs c3c029c5c1 cachingFS.SetKeepCache 2015-07-29 05:52:25 +00:00
Aaron Jacobs 7fae3a996b Added OpenFileOp.KeepPageCache. 2015-07-29 05:51:20 +00:00
Aaron Jacobs 04dad40a08 PageCacheTest.TwoFileHandles_KeepCache 2015-07-29 05:47:18 +00:00
Aaron Jacobs 454f3959f7 PageCacheTest.TwoFileHandles_NoKeepCache 2015-07-29 05:46:13 +00:00
Aaron Jacobs 93388be731 PageCacheTest.SingleFileHandle_KeepCache 2015-07-29 05:43:47 +00:00
Aaron Jacobs 745498b1e9 cachingFS.ReadFile 2015-07-29 05:43:23 +00:00
Aaron Jacobs a95b1fb276 PageCacheTest.SingleFileHandle_NoKeepCache 2015-07-29 05:41:31 +00:00
Aaron Jacobs 28ee2de1e9 Added test names. 2015-07-29 05:37:55 +00:00
Aaron Jacobs b5be88054f Defined SetKeepCache and read behavior. 2015-07-29 15:32:49 +10:00
Aaron Jacobs 9e84136ee5 Don't run sprintf when unnecessary. 2015-07-29 15:13:22 +10:00
Aaron Jacobs 30cdb148b9 Allow the kernel to send other requests while waiting for a read.
On Linux this significantly increases gcsfuse sequential read throughput.
2015-07-29 14:59:35 +10:00
Aaron Jacobs cf5cfbccfd Fixed a (new) test bug on Linux. 2015-07-29 14:59:10 +10:00
Aaron Jacobs d45752960a Use a custom logging for interruptOp, to aid in debugging. 2015-07-29 14:53:09 +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 0114453672 Expanded interruptfs to also cover testing interrupts during flush. 2015-07-29 14:52:49 +10:00
Aaron Jacobs be5974e914 InterruptFSTest.InterruptedDuringFlush 2015-07-29 14:52:03 +10:00
Aaron Jacobs 85439be549 InterruptFSTest.InterruptedDuringRead 2015-07-29 14:51:33 +10:00
Aaron Jacobs 0796c46a9c Updated the interruptfs API. 2015-07-29 14:51:10 +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 e157c6bc8d Eliminated an allocation and a copy for each ReadFileOp.
This adds up to a significant performance gain for gcsfuse, in its sequential
read benchmark.

Also ReadDirOp.
2015-07-29 11:19:03 +10:00
Aaron Jacobs ab0580a452 Fixed a very dumb bug. 2015-07-29 11:14:17 +10:00
Aaron Jacobs ea97708e20 Read directly into out messages for directories. 2015-07-29 11:03:27 +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 4fd46371a2 Rejiggered the ReadFile and ReadDir API.
The new API lends itself toward reading directly into the output buffer, saving
a memmove and allowing for easy reuse of output buffers.
2015-07-29 10:24:11 +10:00
Aaron Jacobs c12f80b1e2 Fixed flushfs. 2015-07-29 10:23:51 +10:00
Aaron Jacobs 85b3f9ed42 Fixed hellofs. 2015-07-29 10:22:26 +10:00