Commit Graph

1199 Commits

Author SHA1 Message Date
Nikolaus Rath
35ce627e35 Renamed cuses example and added test program
An earlier version of the fioclient.c example was intended to be
used together with cusexmp.c. The former has since evolved into
ioctl_client.c and no longer has the function necessary to test
CUSE. Therefore, we've added a new cuse_client.c that is clearly
associated with the cuse.c example file system.
2016-10-09 22:03:07 -07:00
Nikolaus Rath
cf4159156b Increase timeouts in notify_* tests
When running under Valgrind, we otherwise get sporadic test failures.
2016-10-09 22:03:07 -07:00
Nikolaus Rath
7e562d59d4 Don't confuse lookup count for mountpoint and file
I think this is the reason for a sporadic test failure, where
fuse_lowlevel_notify_store() fails.
2016-10-09 22:03:07 -07:00
Nikolaus Rath
64c97de5be Renamed timefsN examples to fuse_notify_*
This should make it more obvious at first glance what the different
examples do.
2016-10-09 22:03:07 -07:00
Nikolaus Rath
a668d264d6 Include testfsN examples in Doxygen documentation. 2016-10-09 22:03:07 -07:00
Nikolaus Rath
bcad1a6f22 Renamed ioctl and poll examples
The new names should make it more obvious at first glance
what each example demonstrates.
2016-10-09 22:03:07 -07:00
Nikolaus Rath
463189cd12 Renamed some examples to make their function more obvious
Also, added more comments for the same purpose.
2016-10-09 22:03:07 -07:00
Nikolaus Rath
225c12aebf fuse_parse_cmdline(): do not print help/version text
The current behavior makes it difficult to add help for
additional options. With the change, this becomes a lot easier.
2016-10-09 22:03:07 -07:00
Nikolaus Rath
1014e1fc93 Added missing export of fuse_pkgversion. 2016-10-09 22:03:07 -07:00
Nikolaus Rath
039b9fa28f Merge pull request #80 from libfuse/master-proposed 2016-10-09 14:19:33 -07:00
Nikolaus Rath
52dec7ffdd Whitespace fix. 2016-10-09 14:11:26 -07:00
Nikolaus Rath
c2a47b08af Fix valgrind warning
If we don't assign a value to padding, we get a warning about reading
uninitialized data when sending the iovec to the kernel.
2016-10-09 14:11:26 -07:00
Nikolaus Rath
115b7b2cf3 Fix documentation of fuse_parse_cmdline().
For --help and --version, it returns -1.
2016-10-09 14:11:26 -07:00
Nikolaus Rath
d5cdbb94a0 Dropped example/null.c
This does not seem to be working. Maybe because it tries to treat the
mountpoint as a file rather than a directory?
2016-10-09 14:11:24 -07:00
Nikolaus Rath
9f19d71a76 Added timefs3 to test notify_inval_entry.
Fixes #32.
2016-10-08 21:27:06 -07:00
Nikolaus Rath
56690972af Add background and multithreading support to hello_ll and fuse_lo-plus 2016-10-08 21:27:06 -07:00
Nikolaus Rath
0719bd97b1 Update list of requests that can be answered with fuse_reply_none(). 2016-10-08 21:27:06 -07:00
Nikolaus Rath
042904f09b testfs2: Also test fuse_notify_retrieve(). 2016-10-08 21:27:06 -07:00
Nikolaus Rath
3114ff2b9b Added timefs[12] examples.
These examplesdemonstrate the use of the `fuse_lowlevel_notify_store`
and `fuse_lowlevel_notify_inval_inode` functions.
2016-10-08 21:27:04 -07:00
Nikolaus Rath
ba0462e401 Added safe_sleep() 2016-10-08 21:26:40 -07:00
Nikolaus Rath
c3b9431fc5 Clarify that readdir() *may* report . and .. entries. 2016-10-08 21:26:40 -07:00
Nikolaus Rath
97f4a9cb4f Removed `-o big_writes` option
This option is obsolete and should always be enabled. File systems that
want to limit the size of write requests should use the
``-o max_write=<N>`` option instead.
2016-10-08 21:26:36 -07:00
Nikolaus Rath
2680c5b995 Test more combinations of low-level options. 2016-10-05 20:03:18 -07:00
Nikolaus Rath
ecc291b7be Remove pointless aliasing of fuse_session *se to *f
This is an overlooked artifact of the fuse_ll-fuse_session merge.
2016-10-05 09:34:27 -07:00
Nikolaus Rath
cfe424d56e Removed obsolete, unused *f member from struct fuse_session. 2016-10-05 08:57:04 -07:00
Nikolaus Rath
2011551d3e Merge struct fuse_ll into struct fuse_session.
This merge merges struct fuse_ll into struct fuse_session. Since
there is always a one-to-one correspondence between the two,
there is little reason to keep them separate. By merging them,
we save pointers and lines of code.
2016-10-04 21:06:15 -07:00
Nikolaus Rath
ee07bb2d2e Merge fuse_ll into fuse_session (part 8)
Replaced "req->se" with "f" where the latter is already defined.
2016-10-04 21:02:40 -07:00
Nikolaus Rath
cad34af35e Merge fuse_ll into fuse_session (part 7)
Remove pointless aliasing of "struct fuse_session *se" to "struct
fuse_session *f".
2016-10-04 20:58:19 -07:00
Nikolaus Rath
98dc48d940 Merge fuse_ll into fuse_session (part 6)
Fixup cuse_lowlevel_new().
2016-10-04 20:50:30 -07:00
Nikolaus Rath
3c2a296b0b Merge fuse_ll into fuse_session (part 5)
Fixup fuse_session_new().
2016-10-04 20:48:02 -07:00
Nikolaus Rath
a5374df98e Merge fuse_ll into fuse_session (part 4)
Merge fuse_ll_destroy() and fuse_session_destroy().
2016-10-04 20:48:02 -07:00
Nikolaus Rath
ac7121d514 Merge fuse_ll into fuse_session (part 3)
Replace se->f with se.
2016-10-04 20:47:59 -07:00
Nikolaus Rath
161dc8d724 Merge fuse_ll into fuse_session (part 2)
Replaced all references to req->f with req->se.
2016-10-04 20:47:26 -07:00
Nikolaus Rath
2ed7af9087 Merge fuse_ll into fuse_session (part 1)
Merged the structures, and replaced fuse_ll with fuse_session
in all type definitions.
2016-10-04 20:46:34 -07:00
Nikolaus Rath
595f7c3906 fuse_mount_help(): clarify that listed options are FUSE specific
We also accept a number of mount options that are common to
all  file systems (nosuid, nodev, ro, etc).
2016-10-04 19:40:06 -07:00
Nikolaus Rath
950398c4f6 Clarified purpose of helper.c, moved *version() to fuse.c 2016-10-04 19:34:19 -07:00
Nikolaus Rath
cc60a20f9e Merge branch 'fix-root-umount'
Commit e4015aca9b already fixed this problem in a different way, so
this is effectively a null-merge.
2016-10-04 10:58:54 -07:00
Nikolaus Rath
c889148d35 fuse_session_unmount(): fix unmounting as root
We have to store the channel before removing it from the session,
otherwise we cannot use it to do the unmount.

This problem was introduced in commit 5698ee09cf.

Thanks to Michael Theall for reporting & debugging this.
2016-10-04 10:55:12 -07:00
Nikolaus Rath
e4015aca9b Merge master fuse_chan into fuse_session.
This is a code simplification patch.

- It confines most of the implementation channel implementation into
  fuse_loop_mt (which is its only user).

- It makes it more obvious in the code that channels are only ever used
  when using -o clone_fd and multi-threaded main loop.

- It simplies the definition of both struct fuse_session and struct
  fuse_chan.

- Theoretically it should result in (minuscule) performance
  improvements when not using -o clone_fd.

- Overall, it removes a lot more lines of source code than it adds :-).
2016-10-03 23:01:46 -07:00
Nikolaus Rath
e572cfbd34 fuse_lowlevel_notify_poll(): use master channel
In theory, a poll handle could hang around much longer than the worker
thread that creates it. Furthermore, the thread that created the
pollhandle is no more likely to call fuse_lowlevel_notify_poll() than
any other thread.

In theory, this would have kept the channel alive for much longer than
necessary. In practice, there seems to have been a bug that prevented
this - and instead allowed the channel to be destroyed while there
was still a pollhandle referring to it.

Instead of fixing this by calling fuse_chan_get() and fuse_chan_put() in
do_poll() and fuse_pollhandle_destroy(), we simply transmit poll
notifications over the master channel now.
2016-10-03 23:01:46 -07:00
Nikolaus Rath
292fb198f1 Store struct fuse_session* in struct fuse_req 2016-10-03 23:01:46 -07:00
Nikolaus Rath
ea471967c9 fuse_session_process_buf(): improve documentation 2016-10-03 23:01:46 -07:00
Nikolaus Rath
7667317eef Released 3.0.0pre0 2016-10-03 09:08:58 -07:00
Nikolaus Rath
321af37ee1 Don't crash if valgrind or libtool are not installed. 2016-10-03 09:08:58 -07:00
Nikolaus Rath
f270ba9121 Run tests under valgrind when available.
Fixes #50.
2016-10-02 22:39:28 -07:00
Nikolaus Rath
651f85e4a2 Import os.path.join as pjoin
Makes the code much shorter :-).
2016-10-02 22:11:16 -07:00
Nikolaus Rath
2ac973ef4c Added fuse_session_fd()
Fixes #59.
2016-10-02 21:48:47 -07:00
Nikolaus Rath
e18ecf33cf Document that client pid/gid/uid may be zero.
Fixes #67.
2016-10-02 21:36:12 -07:00
Nikolaus Rath
b082a001c7 Merged fuse_session.c into fuse_lowlevel.c
This distinction no longer makes sens. fuse_lowlevel.c already contains
several session related functions, and fuse_session.c contains various
stuff that is more related to the channel interface.
2016-10-02 21:24:43 -07:00
Nikolaus Rath
ba12a8f7e3 Merged fuse_mt.c into fuse.c
There is no point in having a separate file for a 10 line function.
2016-10-02 21:24:43 -07:00