Commits
- Commit:
88dc1f7a6862804e618af943dae47cbd6e46dc97
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
Add parsing of custom options
https://github.com/libfuse/libfuse/wiki/Option-Parsing
Closes #60
Closes #12
Closes #7
Closes #1
- Commit:
eab9c97a63b6f297f304a536b16b071100dad36e
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
FUSE_USE_VERSION
- FreeBSD https://cirrus-ci.com/task/6438581582430208?command=build
- MacOS https://cirrus-ci.com/task/5031206698876928?command=build
- Commit:
428dcf480ca60c64a5584cfe64c8f157bc1b820c
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
style: alignment
- Commit:
76b0d8ef5a7c700c3ccc560ba6145fcdc8aaa6f9
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
readme: add cirrus ci status badge
- Commit:
b4e484ee851da8b24bd53e3b2cf699ba0576b951
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
Add license
- Commit:
56e5a54fd8120b5289535879ee897d3f62811278
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
Disable FUSE wrapper for ioctl() on OpenBSD
OpenBSD has it's own FUSE implementation that
doesn't support ioctl() operation.
In file included from /home/sergeyb/source/unreliablefs/unreliablefs.c:10:
/home/sergeyb/source/unreliablefs/unreliablefs_ops.h:55:47: warning: declaration of 'struct fuse_bufvec' will not be visible outside of this
function [-Wvisibility]
int unreliable_write_buf(const char *, struct fuse_bufvec *buf, off_t off,
^
/home/sergeyb/source/unreliablefs/unreliablefs_ops.h:57:46: warning: declaration of 'struct fuse_bufvec' will not be visible outside of this
function [-Wvisibility]
int unreliable_read_buf(const char *, struct fuse_bufvec **bufp,
^
/home/sergeyb/source/unreliablefs/unreliablefs.c:51:6: error: field designator 'ioctl' does not refer to any field in type
'struct fuse_operations'
.ioctl = unreliable_ioctl,
^
2 warnings and 1 error generated.
Disable ioctl() enabled in commit c96dbe41b2f53fb5a9ac1e0fc798775c9cd01596
("Use check_function_exists() to detect functions support").
- Commit:
345979a989141d7ce01fe1cd0ffde2a62b3d1955
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
Add fio to regression testing
fio - is a Flexible I/O tester [1]. Fio was originally written to test a
specific workload, either for performance reasons or to find/reproduce a
bug. It allows to test many possible workloads, see examples [2] and
recommended configurations to test latency and throughput, see [3] and
[4]. This patch adds wrapper to pytest around fio and a signle simple
configuration. Other configurations are coming.
1. https://fio.readthedocs.io/en/latest/fio_doc.html
2. https://github.com/axboe/fio/tree/master/examples
3. https://docs.oracle.com/en-us/iaas/Content/Block/References/samplefiocommandslinux.htm
4. https://arstechnica.com/gadgets/2020/02/how-fast-are-your-disks-find-out-the-open-source-way-with-fio/
Closes #51
- Commit:
1927dcedd3c9f75fc546db4395a7422c9b9abcbf
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
Add fsx to regression testing
fsx is a 'file system exerciser'.
From [1]: "Way back in 1991, Avadis Tevanian wrote a 'file system exerciser'.
It stayed hidden away within NeXT for many years, until it resurfaced again in
1998, after being rewritten by Conrad Minshall from Apple. It still remained
somewhat unknown, until 2001, a decade after its original inception, Jordan
Hubbard announced on freebsd-hackers a new tool called 'fsx', which found major
NFS bugs in FreeBSD."
Patch adds wrapper to pytest around fsx to add it to the regression suite.
1. https://web.archive.org/web/20190115144026/http://codemonkey.org.uk/projects/fsx/
Closes #33
- Commit:
09e31d709629f469209a9210ae9d36a21ec290d5
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
Use HAVE_XATTR in unreliablefs.c
In commit c96dbe41b2f53fb5a9ac1e0fc798775c9cd01596 ("Use
check_function_exists() to detect functions support") macroses
for operating systems has been replaced by macroses for features.
One place was missed and patch fixes it.
- Commit:
c96dbe41b2f53fb5a9ac1e0fc798775c9cd01596
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
Use check_function_exists() to detect functions support
Some operating systems missed fallocate(), utimens(), flock(),
setxattr(), getxattr(), listxattr() and removexattr() support. Right
now source code related to these functions enabled explicitly on OSes
where it is supported. It's better to detect functions in runtime using
CMake's check_function_exists() and enable appropriate define if
function exists in a system.
Seems ioctl() supported everywhere, so condition compilation has been
removed.
- Commit:
51509974650a6c946194909defb2ce20944a7d79
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
tests: fix path to mnt_name in test for removexattr()
Follows up #50
- Commit:
142ee1a6a87651c3b727ed2bfbacf231d8783a27
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
Add FUSE wrapper for utimensat()
Fixes #52
Closes #16
- Commit:
21cc568c69c3d3331993c72b5b36b6f8dfa9bcd1
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
Fix return code in FUSE wrapper for ioctl()
"Usually, on success zero is returned. A few ioctl() requests use the
return value as an output parameter and return a nonnegative value
on success. On error, -1 is returned, and errno is set appropriately."
- Commit:
919db5195b1f0072be78ac9784f8113d0ced2499
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
Fix return code in FUSE wrapper for listxattr()
"On success, a nonnegative number is returned indicating the size of
the extended attribute name list. On failure, -1 is returned and errno
is set appropriately."
- Commit:
4bcab5925fb2cae8803068075787791c9f5c074e
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
Return 0 by default in lstat() and getattr()
- Commit:
35545f52a53ce055454fe27ec062ac3053d8c1a2
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
tests: add regression test for flock operation
- Commit:
29a03c390f97fc99f9defaaf597db4f8387e20fc
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
tests: add regression tests for xattr operations
There is a bug with setxattr, see #50. It is marked as
expected fail in tests.
- Commit:
ae52aaa51d2f9eedf103448dcdb7e9dfef5273cb
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
tests: add test_readdir_big()
- Commit:
8895eb30f0af8eb746db0c68dd8d77201fe1cd08
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
Fix bug with FUSE wrapper for readdir(2)
Fixes: #43
Fixes: #45
- Commit:
6e15b1b7c6e58c8ba4c2ed4d53bb1a41adc41ce0
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
Check fh for NULL in FUSE wrapper for readdir(2)
- Commit:
cb9a0b4a910d6f16b6f814e8036a6cec3db1a66f
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
tests: add testcase for gh-14
Closes: #14
- Commit:
576ed4ae8cfebdbcc77a191c43271b02abeb7176
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
Replace stat() with lstat() in FUSE wrapper for getattr(2)
The reason is because after symlink request, FUSE automatically calls
getattr() [1] and under current implementation using stat(), it stats
the target of the link but not the link file itself.
1. https://github.com/libfuse/libfuse/wiki/Invariants
Closes: #11
Closes: #37
- Commit:
a819f13429a798a22dd464ed80904ed4b2c6befb
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
Replace creat() with open() in FUSE wrapper for read(2)
Fixes: #40
Fixes: #38
- Commit:
1d270e941a4df43bb433716d6ec1e8c20839c9ce
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
Update FUSE wrapper for fallocate(2)
- Commit:
fa47663f7915ef6db546dc4223093aa1e48b902c
- From:
- Sergey Bronnikov <estetus@gmail.com>
- Date:
Update FUSE wrapper for read(2)