aboutsummaryrefslogtreecommitdiffstats
path: root/lib/fuse_lowlevel.c
AgeCommit message (Collapse)AuthorLines
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
2011-10-23Reply with ENOMEM in case of failure to allocate requestMiklos Szeredi-9/+20
Reply to request with ENOMEM in case of failure to allocate request structure. Otherwise the task issuing the request will just freeze up until the filesystem daemon is killed. Reported by Stephan Kulow
2011-07-06Add ->flock() operation to low and high level interfacesMiklos Szeredi-7/+45
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.
2011-05-27Check if splice/vmsplice are supportedMiklos Szeredi-24/+67
2011-05-19Fix ioctl ABIMiklos Szeredi-10/+72
Fix the ambiguity of ioctl ABI on the kernel/userspace boundary for 32bit vs. 64bit userspace
2011-05-19Add ->forget_multi() operationMiklos Szeredi-2/+7
Add ->forget_multi() operation to the lowlevel API. The filesystem may implement this to process multiple forget requests in one call
2011-05-19Allow batching of forget requestsMiklos Szeredi-9/+52
This allows forget requests to be processed faster and doesn't require a modification to fuse filesystems. Reported by Terje Malmedal
2011-05-19Fix splice_readMiklos Szeredi-2/+1
2011-05-19Disable splice by defaultMiklos Szeredi-6/+16
Disable splice by default, add "splice_read", "splice_write" and "splice_move" options. Keep the "no_splice_*" variants, which can disable splice even if the filesystem explicitly enables it.
2010-11-10store fuse_buf inside fuse_bufvecMiklos Szeredi-71/+51
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.
2010-11-08libfuse: add retrieve requestMiklos Szeredi-3/+152
Retrieve data stored in the kernel buffers for a given inode.
2010-11-08fix pipe cleanup in do_write_buf()Miklos Szeredi-2/+4
2010-11-08Add ctx->pid to debug outputMiklos Szeredi-2/+2
2010-11-08libfuse: add store requestMiklos Szeredi-83/+121
Request data to be stored in the kernel buffers for a given inode.
2010-11-08libfuse: support zero copy writes in lowlevel interfaceMiklos Szeredi-20/+272
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.
2010-08-27Add NetBSD supportMiklos Szeredi-3/+5
The bulk of it is just about adding ifdef __NetBSD__ where there is already an ifdef __FreeBSD__ Add a arch=netbsd to deal with NetBSD specifics. I suggests that arch=bsd could be renamed to arch=freebsd NetBSD specific linking with -lperfuse NetBSD patches to lib/mount.c. It turned to be less itrusive to patch mount;c than mount_bsd.c. I suggest mount_bsd.c could be renamed to mount_freebsd.c Patch from Emmanuel Dreyfus
2010-07-12libfuse: add buffer interfaceMiklos Szeredi-33/+201
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.
2010-06-23* Make the number of max background requests and congestionMiklos Szeredi-0/+22
threshold tunable.
2010-06-17Add fuse_reply_fd() reply function to the low level interfaceMiklos Szeredi-6/+212
2010-01-14* Fix compile error on FreeBSD. Patch by Jay SullivanMiklos Szeredi-1/+1
2009-08-18* Add missing fuse_session_data to versionscriptMiklos Szeredi-8/+9
* Make sure all global symbols are prefixed with "fuse_" or "cuse_" * Released 2.8.0
2009-07-16* Clarify how the protocol version should be negotiated betweenMiklos Szeredi-5/+12
kernel and userspace. Notably libfuse didn't correctly handle the case when the supported major versions didn't match
2009-07-02* The context is extended with a 'umask' field. The umask is sentMiklos Szeredi-3/+85
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
2009-06-19Add fuse_getgroups (high level lib) and fuse_req_getgroups (lowMiklos Szeredi-0/+68
level lib) functions to query the supplementary group IDs for the current request. Currently this is implemented on Linux by reading from the /proc filesystem.
2009-06-18CUSE patches from Tejun Heo (add new files)Miklos Szeredi-2/+4
2009-06-18CUSE patches from Tejun HeoMiklos Szeredi-65/+71
2009-05-25Add FUSE_CAP_EXPORT_SUPPORT to fuse_common.hMiklos Szeredi-0/+4
2008-12-08* Add missing setattr flags to <fuse_lowlevel.h>.Miklos Szeredi-0/+10
* Only pass valid flags to ->setattr().
2008-12-08* Implement poll support. Patch by Tejun HeoMiklos Szeredi-0/+86
2008-12-05* Implement ioctl support. On high level interface onlyMiklos Szeredi-0/+72
"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
2008-11-28If open sets fi->nonseekable, libfuse will tell the kernel that the file is ↵Miklos Szeredi-0/+2
not seekable. Patch by Tejun Heo
2008-11-27lowlevel lib: fix deadlock if fuse_reply_* is called from theinterrupt ↵Miklos Szeredi-6/+10
handling function. Reported by Tero Marttila
2008-10-14Pass current file flags to read and write operationsMiklos Szeredi-2/+9
2008-06-09Don't allow bigger than 4kB writes by default...Miklos Szeredi-9/+29
2008-04-09Update warning message for missing newline at end of fuse.confMiklos Szeredi-5/+12
2008-04-06Highlevel lib: don't limit paths to 4095 charactersMiklos Szeredi-0/+3
2008-02-08Support the st_blksize field in struct statMiklos Szeredi-10/+17
2008-02-08Add support for atomic open(O_TRUNC)Miklos Szeredi-4/+12
2008-02-08Support receiving file handle from kernel in GETATTR request; Allow ↵Miklos Szeredi-2/+14
operations with a NULL path argument, if the filesystem supports it