aboutsummaryrefslogtreecommitdiff
path: root/lib/fuse_lowlevel.c
Commit message (Collapse)AuthorAge
* Added fuse_session_fd()Gravatar Nikolaus Rath2016-10-02
| | | | Fixes #59.
* Merged fuse_session.c into fuse_lowlevel.cGravatar Nikolaus Rath2016-10-02
| | | | | | 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.
* Extended per-file comments.Gravatar Nikolaus Rath2016-10-02
| | | | | This should make more clear what file contains code for what purpose.
* Don't handle --help and --version in fuse_session_new().Gravatar Nikolaus Rath2016-10-02
| | | | | | | | | | | | | | | | | | | Help and version messages can be generated using the new fuse_lowlevel_help(), fuse_lowlevel_version(), fuse_mount_help(), and fuse_mount_version() functions. The fuse_parse_cmdline() function has been made more powerful to do this automatically, and is now explicitly intended only for low-level API users. This is a code simplication patch. We don't have to parse for --help and --version in quite as many places, and we no longer have a low-level initialization function be responsible for the (super-high level) task of printing a program usage message. In the high-level API, we can now handle the command line parsing earlier and avoid running other initialization code if we're just going to abort later on.
* fuse_mount_opts: don't keep max_read= option.Gravatar Nikolaus Rath2016-10-02
| | | | There is no consumer of it down the line.
* Add section headings for --help outputGravatar Nikolaus Rath2016-10-02
| | | | Also, do not include "General options" in usage message.
* Turn struct fuse_chan into an implementation detailGravatar Nikolaus Rath2016-10-02
| | | | | | | | | | | | | | | | | | | | | The only struct fuse_chan that's accessible to the user application is the "master" channel that is returned by fuse_mount and stored in struct fuse_session. When using the multi-threaded main loop with the "clone_fd" option, each worker thread gets its own struct fuse_chan. However, none of these are available to the user application, nor do they hold references to struct fuse_session (the pointer is always null). Therefore, any presence of struct fuse_chan can be removed without loss of functionality by relying on struct fuse_session instead. This reduces the number of API functions and removes a potential source of confusion (since the new API no longer looks as if it might be possible to add multiple channels to one session, or to share one channel between multiple sessions). Fixes issue #17.
* Renamed fuse_lowlevel_new() to fuse_session_new().Gravatar Nikolaus Rath2016-10-02
|
* Introduce separate mount/umount functions for low-level API.Gravatar Nikolaus Rath2016-10-02
|
* Turned fuse_session_{process,receive}_buf into wrapper functions.Gravatar Nikolaus Rath2016-10-02
|
* Inlined fuse_session_new()Gravatar Nikolaus Rath2016-10-02
| | | | This function is only used in one place.
* Improve documentation of argument parsing.Gravatar Nikolaus Rath2016-10-01
|
* fuse_lowlevel_notify_*: take struct fuse_session instead of struct fuse_chanGravatar Nikolaus Rath2016-09-27
| | | | | | | | | | | The only struct fuse_chan that's available to the user application is the one that is returned by fuse_mount. However, this is also permanently available from struct fuse_session. A later patch will therefore remove struct fuse_chan from the public API completely. This patch prepares for this by changing the fuse_lowlevel_notify_* functions to take a struct fuse_session parameter instead of a struct fuse_chan parameter.
* Inlined calculate_dirent*_size functionsGravatar Nikolaus Rath2016-06-05
|
* Don't use IFTODT macro.Gravatar Nikolaus Rath2016-06-05
| | | | | | | | | IFTODT is provided by libc to convert from mode_t (as included in e.g. struct fstat) to d_type (unsigned char element of struct dirent, as returned by e.g. readdir). However, fuse actually uses a different struct fuse_dirent with a "type" field of type uint32. In other words, the semantics of (struct fuse_dirent).type are not necessarily the same as those of (struct dirent).d_type.
* Inlined fuse_add_direntGravatar Nikolaus Rath2016-06-05
|
* Merge branch 'add-dirent-strlen3' of git://github.com/trapexit/libfuse into ↵Gravatar Nikolaus Rath2016-06-04
|\ | | | | | | trapexit-add-dirent-strlen3
| * remove double calculation of filename length and dirent sizeGravatar Antonio SJ Musumeci2016-05-12
| |
* | lib/fuse_lowlevel.c: fix small typo in fuse_ll_help (#44)Gravatar David Sheets2016-05-11
| | | | | | s/disable remove file locking/disable remote file locking/
* | Whitespace cleanup.Gravatar Nikolaus Rath2016-03-29
| | | | | | | | | | | | Applied (whitespace-cleanup) to each file. Having whitespace changes in the VCS is ugly, but it ensures that in the future committers can run this function to *avoid* commiting any whitespace.
* | Inlined fuse_chan_fdGravatar Nikolaus Rath2016-03-29
| |
* | Inlined fuse_chan_{send, recv}Gravatar Nikolaus Rath2016-03-29
|/
* Initialize padding to zero.Gravatar Nikolaus Rath2016-01-14
| | | | This should prevent some valgrind warnings.
* Merge branch 'clone_fd'Gravatar Miklos Szeredi2015-09-29
|\
* | libfuse: fix possible memory leakGravatar Miklos Szeredi2015-06-29
| | | | | | | | Reported by Jose R. Guzman
| * libfuse: add "clone_fd" optionGravatar Miklos Szeredi2015-05-18
| | | | | | | | | | This creates a separate device file descriptor for each processing thread, which might improve performance.
| * libfuse: get ref for reqGravatar Miklos Szeredi2015-05-18
| | | | | | | | | | | | While the request lives don't free the channel associated with the request, the answer will need to be written on the channel.
| * libfuse: refcount fuse_chan objectsGravatar Miklos Szeredi2015-05-18
|/ | | | | New functions: fuse_chan_get(), fuse_chan_put(). Removed function: fuse_chan_destroy().
* libfuse: add FUSE_CAP_NO_OPEN_SUPPORT flag to ->init()Gravatar Miklos Szeredi2015-04-23
|
* libfuse: add flags to ->rename()Gravatar Miklos Szeredi2014-07-15
| | | | See renameat2() system call in linux-3.15 and later kernels.
* libfuse: allow setting ctime in ->setattr()Gravatar Miklos Szeredi2014-07-15
|
* libfuse: add "time_gran" optionGravatar Miklos Szeredi2014-07-15
| | | | | | This allows the filesystem to specify the time granularity it supports when the kernel is responsible for updating times ("writeback_cache" option).
* Allocate buffer when splicing from the fuse deviceGravatar Miklos Szeredi2014-02-27
| | | | Was broken by commit 561d7054d856 "libfuse: remove fuse_chan_bufsize()".
* libfuse: Add "async_dio" and "writeback_cache" optionsGravatar Miklos Szeredi2014-01-29
| | | | | Asynchronous direct I/O is supported by linux kernels 3.13 and later, writeback caching is supported by 3.14 and later.
* Fix fuse_add_direntry_plus()Gravatar Miklos Szeredi2013-11-29
|
* Merge remote-tracking branch 'origin/fuse_2_9_bugfix'Gravatar Miklos Szeredi2013-08-26
|\
| * Add missing includesGravatar Daniel Thau2013-08-26
| | | | | | | | This allows compiling fuse with musl.
* | Don't close -1 fd in fuse_chan_destroy()Gravatar Miklos Szeredi2013-08-26
| | | | | | | | | | Valgrind warns on close(-1). So don't do this (happens if fuse_chan_clearfd() was called on the channel).
* | Print help on stdout instead of stderrGravatar Miklos Szeredi2013-07-26
| |
* | libfuse: clean up struct fuse_file_infoGravatar Miklos Szeredi2013-07-18
| | | | | | | | | | | | Remove 'fh_old' which was an ABI compatibility field for a long time. Make 'writepage' a bitfield.
* | Merge https://github.com/qknight/fuse-fuseGravatar Miklos Szeredi2013-07-17
|\ \
| * | rewrote c++ style comments to c style coments mentioned by Miklos SzerediGravatar Joachim Schiele2013-07-02
| | |
* | | libfuse: remove session and chan abstractionsGravatar Miklos Szeredi2013-06-21
| | | | | | | | | | | | | | | | | | There's actually just one type of channel and session, so we don't need the generic callback functions.
* | | libfuse: remove fuse_chan_bufsize()Gravatar Miklos Szeredi2013-06-21
| | | | | | | | | | | | | | | | | | | | | Remove fuse_chan_bufsize() from the lowlevel API. fuse_session_receive_buf() is now responsible for allocating memory for the buffer.
* | | libfuse: remove fuse_chan_(send|receive)Gravatar Miklos Szeredi2013-06-21
| | | | | | | | | | | | | | | | | | | | | Move the fuse_chan_ops.send and .receive implementations to fuse_lowlevel.c. The abstraction wasn't actually useful and made the the splice implementation more difficult. Remove fuse_chan_ops.send and fuse_chan_ops.receive.
* | | libfuse: clean up fuse_sessionGravatar Miklos Szeredi2013-06-21
|/ / | | | | | | | | | | | | | | | | | | Clean up fuse_session related interfaces. Remove the following from the lowlevel library API: struct fuse_session_ops; fuse_session_new(); fuse_session_process(); fuse_session_data();
* | Fix nodeid format stringsGravatar Miklos Szeredi2013-02-21
| |
* | libfuse: remove deprecated fuse_lowlevel_is_lib_option()Gravatar Miklos Szeredi2013-02-08
| |
* | libfuse: allow disabling adaptive readdirplusGravatar Eric Wong2013-02-07
| | | | | | | | | | | | | | | | | | | | | | This switches the -o no_readdirplus option to a tristate string: -o readdirplus=(yes|no|auto) Telling the kernel to always use readdirplus is beneficial to filesystems (e.g. GlusterFS) where the cost to perform readdir and readdirplus are identical. The default remains "auto" (if supported).
* | libfuse: add poll_events to fuse_file_infoGravatar Enke Chen2013-02-07
| | | | | | | | | | Make requested poll events available to the filesystem. If the requested eventsare not available, then this field is zero.