aboutsummaryrefslogtreecommitdiffstats
path: root/lib/fuse_lowlevel.c
AgeCommit message (Collapse)AuthorLines
2016-06-04Merge branch 'add-dirent-strlen3' of git://github.com/trapexit/libfuse into ↵Nikolaus Rath-27/+64
trapexit-add-dirent-strlen3
2016-05-12remove double calculation of filename length and dirent sizeAntonio SJ Musumeci-27/+64
2016-05-11lib/fuse_lowlevel.c: fix small typo in fuse_ll_help (#44)David Sheets-1/+1
s/disable remove file locking/disable remote file locking/
2016-03-29Whitespace cleanup.Nikolaus Rath-3/+3
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.
2016-03-29Inlined fuse_chan_fdNikolaus Rath-6/+6
2016-03-29Inlined fuse_chan_{send, recv}Nikolaus Rath-81/+60
2016-01-14Initialize padding to zero.Nikolaus Rath-0/+1
This should prevent some valgrind warnings.
2015-09-29Merge branch 'clone_fd'Miklos Szeredi-3/+6
2015-06-29libfuse: fix possible memory leakMiklos Szeredi-1/+1
Reported by Jose R. Guzman
2015-05-18libfuse: add "clone_fd" optionMiklos Szeredi-0/+2
This creates a separate device file descriptor for each processing thread, which might improve performance.
2015-05-18libfuse: get ref for reqMiklos Szeredi-1/+3
While the request lives don't free the channel associated with the request, the answer will need to be written on the channel.
2015-05-18libfuse: refcount fuse_chan objectsMiklos Szeredi-2/+1
New functions: fuse_chan_get(), fuse_chan_put(). Removed function: fuse_chan_destroy().
2015-04-23libfuse: add FUSE_CAP_NO_OPEN_SUPPORT flag to ->init()Miklos Szeredi-0/+2
2014-07-15libfuse: add flags to ->rename()Miklos Szeredi-1/+16
See renameat2() system call in linux-3.15 and later kernels.
2014-07-15libfuse: allow setting ctime in ->setattr()Miklos Szeredi-1/+4
2014-07-15libfuse: add "time_gran" optionMiklos Szeredi-1/+12
This allows the filesystem to specify the time granularity it supports when the kernel is responsible for updating times ("writeback_cache" option).
2014-02-27Allocate buffer when splicing from the fuse deviceMiklos Szeredi-6/+21
Was broken by commit 561d7054d856 "libfuse: remove fuse_chan_bufsize()".
2014-01-29libfuse: Add "async_dio" and "writeback_cache" optionsMiklos Szeredi-5/+28
Asynchronous direct I/O is supported by linux kernels 3.13 and later, writeback caching is supported by 3.14 and later.
2013-11-29Fix fuse_add_direntry_plus()Miklos Szeredi-15/+10
2013-08-26Merge remote-tracking branch 'origin/fuse_2_9_bugfix'Miklos Szeredi-0/+1
2013-08-26Add missing includesDaniel Thau-0/+1
This allows compiling fuse with musl.
2013-08-26Don't close -1 fd in fuse_chan_destroy()Miklos Szeredi-1/+3
Valgrind warns on close(-1). So don't do this (happens if fuse_chan_clearfd() was called on the channel).
2013-07-26Print help on stdout instead of stderrMiklos Szeredi-3/+3
2013-07-18libfuse: clean up struct fuse_file_infoMiklos Szeredi-15/+1
Remove 'fh_old' which was an ABI compatibility field for a long time. Make 'writepage' a bitfield.
2013-07-17Merge https://github.com/qknight/fuse-fuseMiklos Szeredi-0/+0
2013-07-02rewrote c++ style comments to c style coments mentioned by Miklos SzerediJoachim Schiele-0/+0
2013-06-21libfuse: remove session and chan abstractionsMiklos Szeredi-20/+32
There's actually just one type of channel and session, so we don't need the generic callback functions.
2013-06-21libfuse: remove fuse_chan_bufsize()Miklos Szeredi-22/+25
Remove fuse_chan_bufsize() from the lowlevel API. fuse_session_receive_buf() is now responsible for allocating memory for the buffer.
2013-06-21libfuse: remove fuse_chan_(send|receive)Miklos Szeredi-8/+60
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.
2013-06-21libfuse: clean up fuse_sessionMiklos Szeredi-16/+2
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();
2013-02-21Fix nodeid format stringsMiklos Szeredi-2/+2
2013-02-08libfuse: remove deprecated fuse_lowlevel_is_lib_option()Miklos Szeredi-5/+0
2013-02-07libfuse: allow disabling adaptive readdirplusEric Wong-4/+16
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).
2013-02-07libfuse: add poll_events to fuse_file_infoEnke Chen-0/+1
Make requested poll events available to the filesystem. If the requested eventsare not available, then this field is zero.
2013-02-07libfuse: add readdirplus support in fuse_lowlevel_opsFeng Shuo-1/+47
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>
2013-02-06libfuse: Add '[no_]auto_inval_data' mount optionFeng Shuo-0/+11
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>
2013-02-06libfuse: set close-on-exec flag on pipe file descriptorsEric Wong-9/+26
The FUSE library may be used from any number of programs which may also fork() + execve(), so set the close-on-exec flag to avoid inadvertant leakage of pipe file descriptors. While we're at it, attempt to use pipe2() since this is within a (currently) Linux-only code path and pipe2() offers thread-safety.
2013-02-04Merge branch 'fuse_2_9_bugfix'Miklos Szeredi-0/+1
2012-08-24Fix missing config.h in buffer.cMiklos Szeredi-0/+1
Due to an oversight, splice will never actually be used for i/o. Someone forgot to #include "config.h" in lib/buffer.c (in fact almost no files include that header). As a result, even though configure detects splice support and puts HAVE_SPLICE in config.h, buffer.c is always compiled as if there is no splice support. Also add #include "config.h" to fuse.c and fuse_lowlevel.c. These currently include it indirectly through fuse_misc.h, but we don't want to depend on that. Reported by Matthew Gabeler-Lee
2012-07-19Remove compat functionsMiklos Szeredi-152/+6
2012-07-19Remove old symbol versionsMiklos Szeredi-10/+0
2012-07-04libfuse: mark some data constantMiklos Szeredi-1/+1
2012-06-18Add FALLOCATE operationAnatol Pomozov-0/+15
fallocate filesystem operation preallocates media space for the given file. If fallocate returns success then any subsequent write to the given range never fails with 'not enough space' error.
2012-04-10Check protocol version before sending notificationsMiklos Szeredi-0/+9
Check protocol version before sending notifications and return -ENOSYS if a particular notification is not supported.
2012-01-24Revert "Add mmap() and munmap() methods to low level API"Miklos Szeredi-45/+0
This partially reverts commit 4b2157c44e6ad7e692fcffb7450143e83151d36b. Remove mmap/munmap suppor as this missed the interface changes for Linux-3.3 (API version 7.18). Only revert the mmap/munmap bits and leave the retrieve_reply API fix in place as well as the optimization in fuse_send_data_iov_fallback().
2011-12-09Free request in fuse_reply_data()Miklos Szeredi-2/+4
Fix memory leak caused by a missing fuse_request_free() in fuse_reply_data().
2011-12-07libfuse: Notifying the kernel of deletion.John Muir-0/+28
libfuse part to allow a FUSE file-system to tell the kernel when a file or directory is deleted. If the specified dentry has the specified inode number, the kernel will unhash it. Signed-off-by: John Muir <john@jmuir.com> Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
2011-12-06Add mmap() and munmap() methods to low level APIMiklos Szeredi-6/+64
Currently this is only useful for CUSE. Also update retrieve_reply() method.
2011-12-05Add support for ioctl on directoriesMiklos Szeredi-0/+8
Reported by Antonio SJ Musumeci
2011-12-05Make lock argument of fuse_reply_lock constMiklos Szeredi-1/+1
Low level API: lock argument of fuse_reply_lock should have a 'const' qualifier. Reported by Shachar Sharon