aboutsummaryrefslogtreecommitdiff
path: root/include/fuse_common.h
Commit message (Collapse)AuthorAge
* 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.
* 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.
* Introduce separate mount/umount functions for low-level API.Gravatar Nikolaus Rath2016-10-02
|
* Improve documentation of argument parsing.Gravatar Nikolaus Rath2016-10-01
|
* Fixup commit 482a49c.Gravatar Nikolaus Rath2016-04-27
|
* Merge remote-tracking branch 'origin/master'Gravatar Nikolaus Rath2016-04-27
|\
| * Remove leading _ on header guards to comply with reserved identifier ↵Gravatar Sam Stuewe2016-04-23
| | | | | | | | | | requirements (#29) Remove leading _ on header guards to comply with reserved identifier requirements
* | 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.
* Added fuse_pkgversion functionGravatar Christopher Harrison2015-07-30
| | | | Returns the full PACKAGE_VERSION string, per autoconf
* libfuse: add FUSE_CAP_NO_OPEN_SUPPORT flag to ->init()Gravatar Miklos Szeredi2015-04-23
|
* 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).
* 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.
* 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.
* Documentation fixesGravatar Miklos Szeredi2013-07-17
|
* - added a doxygen main pageGravatar Joachim Schiele2013-06-20
| | | | | | - modified all examples to be included in doxygen - modified the API documentation to have more details - added the 490px_FUSE_structure.svg.png (c) wikipedia
* libfuse: don't force -D_FILE_OFFSET_BITS=64 in pkgconfig file.Gravatar Richard W.M. Jones2013-02-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FUSE_CFLAGS defines -D_FILE_OFFSET_BITS=64. There are three problems with this: (1) A larger program using libfuse might have modules compiled with and without FUSE_CFLAGS, which, if LFS is not enabled and the platform is 32 bit, would result in a fatal mix of 32 and 64 bit off_t. (This would, of course, be a bug, but I think there is a better way to detect this -- see below) (2) Programs may need to be adjusted to support LFS. It's the intention of the LFS standard that the _programmer_ enables LFS once the program has been checked/adjusted. (3) _FILE_OFFSET_BITS does not need to be defined at all on 64 bit Linux. 64 bit off_t is the default there. So I think it's better not to force -D_FILE_OFFSET_BITS=64, and because of (3) I also think you shouldn't test for it. However off_t must still be 64 bits, so how to enforce that? C1X will define static assertions[1], and these can be used to check the size of off_t. Not all compilers support static assertions yet, although several do. Therefore I have surrounded the static assertion with a conservative check that the compiler is GCC >= 4.6. In the long run, this test can be removed and you can just use 'static_assert'.
* 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.
* libfuse: add readdirplus support in fuse_lowlevel_opsGravatar Feng Shuo2013-02-07
| | | | | | | | | | | | | | | | | This patch implements readdirplus support in FUSE usersapce. It adds a new fuse lowlevel operations fuse_lowleve_ops::readdir_plus, corespoding mount options and helper functions to maintain buffer. [From: Eric Wong <normalperson@yhbt.net>] This makes our terminology consistent with NFS and our kernel module, as well as reducing user/developer confusion in the command-line. Note: I'm keeping "fuse_add_direntry_plus" since that is less standardized in its use than "readdirplus" for now. Signed-off-by: Feng Shuo <steve.shuo.feng@gmail.com>
* libfuse: Add '[no_]auto_inval_data' mount optionGravatar Feng Shuo2013-02-06
| | | | | | | | | | | Several caching logic changes have been made on the kernel side to better support network-based fuse filesystems. These include kernel side mtime checking and read path cache revalidation. The new caching logic is enabled through the FUSE_AUTO_INVAL_DATA init flag. Export this to the user via the '[no_]auto_inval_data' mount option. Signed-off-by: Feng Shuo <steve.shuo.feng@gmail.com>
* Start of 3.0 seriesGravatar Miklos Szeredi2012-07-19
| | | | | | | Change the version numbers. This is going to be a new major version of the library breaking backward compatibility on the binary level as well as the source level.
* Add support for ioctl on directoriesGravatar Miklos Szeredi2011-12-05
| | | | Reported by Antonio SJ Musumeci
* Add ->flock() operation to low and high level interfacesGravatar Miklos Szeredi2011-07-06
| | | | | | | | | | This fixes problems with emulating flock() with POSIX locking. Reported by Sebastian Pipping. As with lock/setlk/getlk most filesystems don't need to implement this, as the kernel takes care of file locking. The only reason to implement locking operations is for network filesystems which want file locking to work between clients.
* Spell checking comments, etc...Gravatar Reuben Hawkins2011-05-25
| | | | | | | | | | | ...with the help of vim :set spell modified: FAQ modified: include/fuse.h modified: include/fuse_common.h modified: include/fuse_opt.h modified: lib/fuse_kern_chan.c modified: util/fusermount.c
* Fix splice_readGravatar Miklos Szeredi2011-05-19
|
* Fix fuse_buf_copy_flags valuesGravatar Miklos Szeredi2010-11-12
| | | | Reported-by: Goswin von Brederlow <goswin-v-b@web.de>
* store fuse_buf inside fuse_bufvecGravatar Miklos Szeredi2010-11-10
| | | | | | | Store the first fuse_buf inside fuse_bufvec. This makes initialization of fuse_bufvec simpler for the common case of a single fuse_buf. If multiple fuse_buf's are needed then fuse_bufvec needs to be dynamically allocated.
* bump the API version as well to 2.9Gravatar Miklos Szeredi2010-11-10
|
* libfuse: support zero copy writes in lowlevel interfaceGravatar Miklos Szeredi2010-11-08
| | | | | | | | | | Add new ->write_buf() method to low level interface. This allows passig a generic buffer, either containing a memory buffer or a file descriptor. This allows implementing zero copy writes. Add fuse_session_receive_buf() and fuse_session_process_buf() which may be used in event loop implementations to replace fuse_chan_recv() and fuse_session_process() respectively.
* libfuse: add buffer interfaceGravatar Miklos Szeredi2010-07-12
| | | | | | | | Add a generic buffer interface for use with I/O. Buffer vectors are supplied and each buffer in the vector may be a memory pointer or a file descriptor. The fuse_reply_fd() interface is converted to using buffers.
* * Make the number of max background requests and congestionGravatar Miklos Szeredi2010-06-23
| | | | threshold tunable.
* Add fuse_reply_fd() reply function to the low level interfaceGravatar Miklos Szeredi2010-06-17
|
* Doc fixGravatar Miklos Szeredi2009-11-02
|
* * The context is extended with a 'umask' field. The umask is sentGravatar Miklos Szeredi2009-07-02
| | | | | | | | | | | | | | | for mknod, mkdir and create requests by linux kernel version 2.6.31 or later, otherwise the umask is set to zero. Also introduce a new feature flag: FUSE_CAP_DONT_MASK. If the kernel supports this feature, then this flag will be set in conn->capable in the ->init() method. If the filesystem sets this flag in in conn->want, then the create modes will not be masked. * Add low level interfaces for lookup cache and attribute invalidation. This feature is available in linux kernels 2.6.31 or later. Patch by John Muir * Kernel interface version is now 7.12
* Add FUSE_CAP_EXPORT_SUPPORT to fuse_common.hGravatar Miklos Szeredi2009-05-25
|
* * Implement poll support. Patch by Tejun HeoGravatar Miklos Szeredi2008-12-08
|
* * Implement ioctl support. On high level interface onlyGravatar Miklos Szeredi2008-12-05
| | | | | | | "restricted" ioctls are supported (which are defined with the _IO(), _IOR(), _IOW() or _IOWR() macros). Unrestricted ioctls will only be allwed to CUSE (Character Device in Userspace) servers. Patch by Tejun Heo
* If open sets fi->nonseekable, libfuse will tell the kernel that the file is ↵Gravatar Miklos Szeredi2008-11-28
| | | | not seekable. Patch by Tejun Heo
* Don't allow bigger than 4kB writes by default...Gravatar Miklos Szeredi2008-06-09
|
* Add support for atomic open(O_TRUNC)Gravatar Miklos Szeredi2008-02-08
|
* Support receiving file handle from kernel in GETATTR request; Allow ↵Gravatar Miklos Szeredi2008-02-08
| | | | operations with a NULL path argument, if the filesystem supports it
* Released 2.7.2Gravatar Miklos Szeredi2007-12-17
|
* change indentingGravatar Miklos Szeredi2007-12-12
|
* Clarify licence version to be "LGPLv2" for the libraryGravatar Miklos Szeredi2007-10-16
|
* doc updatesGravatar Miklos Szeredi2007-10-16
|
* Add fs subtype support to libfuse and fusermountGravatar Miklos Szeredi2007-06-20
|
* update copyright datesGravatar Miklos Szeredi2007-04-25
|
* Add filesystem stacking support to high level APIGravatar Miklos Szeredi2007-02-03
|
* doc fixesGravatar Miklos Szeredi2006-10-10
|
* API changesGravatar Miklos Szeredi2006-09-30
|