Commit Graph

51 Commits

Author SHA1 Message Date
Miklos Szeredi afde05b920 libfuse: remove deprecated fuse_invalidate() 2013-02-08 08:03:01 +01:00
Miklos Szeredi 4168937d1e libfuse: remove deprecated fuse_is_lib_option() 2013-02-08 08:03:01 +01:00
Feng Shuo f448ac69d1 libfuse: add readdirplus support in fuse_lowlevel_ops
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-07 14:58:50 +01:00
Miklos Szeredi cc1a1f4edd Remove compat functions 2012-07-19 19:02:42 +02:00
Miklos Szeredi 966d97b1f8 Remove old symbol versions 2012-07-19 18:47:51 +02:00
Anatol Pomozov 96ac0e5d76 Add FALLOCATE operation
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-06-18 13:32:43 +02:00
Miklos Szeredi 2eac08be52 Add missing fuse_fs_flock to fuse_versionscript 2012-04-20 14:17:39 +02:00
Miklos Szeredi 9318a6b947 Revert "Add mmap() and munmap() methods to low level API"
This partially reverts commit 4b2157c44e.

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().
2012-01-24 14:32:28 +01:00
John Muir 5a44747054 libfuse: Notifying the kernel of deletion.
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-07 12:23:58 +01:00
Miklos Szeredi 4b2157c44e Add mmap() and munmap() methods to low level API
Currently this is only useful for CUSE.  Also update retrieve_reply()
method.
2011-12-06 18:06:18 +01:00
therealneworld@gmail.com 94c2b63955 add "remember" option
This works similar to "noforget" except that eventually the node will
be allowed to expire from the cache.
2011-06-02 14:27:02 +02:00
Miklos Szeredi 6332203885 add read_buf method to high level API
Add a new read_buf() method to the highlevel API.  This allows
returning a generic buffer from the read method, which in turn allows
zero copy reads.
2010-11-10 11:41:21 +01:00
Miklos Szeredi df31f2b11e add write_buf method to high level API
Add new write_buf() method to the highlevel API.  Similarly to the
lowlevel write_buf() method, this allows implementing zero copy
writes.
2010-11-10 11:41:21 +01:00
Miklos Szeredi 3f41e8f2c3 libfuse: add retrieve request
Retrieve data stored in the kernel buffers for a given inode.
2010-11-08 21:13:32 +01:00
Miklos Szeredi 0741f702a5 libfuse: add store request
Request data to be stored in the kernel buffers for a given inode.
2010-11-08 18:38:23 +01:00
Miklos Szeredi 4e0aea6a96 libfuse: support zero copy writes in lowlevel interface
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-11-08 17:11:46 +01:00
Miklos Szeredi 824b4ce6ac Fix ambiguous symbol version for fuse_chan_new
fuse_versionscript included fuse_chan_new in both FUSE_2.4 and
FUSE_2.6.  Remove the FUSE_2.4, which is invalid.

Reported by Raymes Khoury, who discovered this with the gold linker
2010-09-28 20:04:02 +02:00
Miklos Szeredi 2709f9a53d libfuse: add buffer interface
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-07-12 17:17:25 +02:00
Miklos Szeredi 1091d73a28 Add fuse_reply_fd() reply function to the low level interface 2010-06-17 11:54:26 +00:00
Miklos Szeredi 6972376812 * Add missing fuse_session_data to versionscript
* Make sure all global symbols are prefixed with "fuse_" or "cuse_"

* Released 2.8.0
2009-08-18 16:13:33 +00:00
Miklos Szeredi 24b35c3d97 * The context is extended with a 'umask' field. The umask is sent
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-07-02 12:26:36 +00:00
Miklos Szeredi ecd073bd70 Add fuse_getgroups (high level lib) and fuse_req_getgroups (low
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-19 10:27:38 +00:00
Miklos Szeredi ae9bfde712 CUSE patches from Tejun Heo 2009-06-18 11:11:54 +00:00
Miklos Szeredi bc53eddb2f Add missing fuse_reply_bmap to versionscript. Debian Bug#531329. Reported by Goswin Brederlow 2009-06-18 09:26:22 +00:00
Miklos Szeredi 5f722fa8f6 * Implement poll support. Patch by Tejun Heo 2008-12-08 19:26:53 +00:00
Miklos Szeredi ecfa5263ab * Implement ioctl support. On high level interface only
"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-12-05 10:55:36 +00:00
Miklos Szeredi 5c094ac015 * Allow commas in options to be escaped with a backslash * Add new function: fuse_opt_add_opt_escaped() * Add missing fuse_reply_bmap() to the version script 2008-10-16 19:11:28 +00:00
Miklos Szeredi 918f0ad95b Disable old symbol versions if __UCLIBC__ is defined 2007-12-12 11:53:38 +00:00
Miklos Szeredi d4428a57bc Released 2.7.0 2007-07-02 11:29:19 +00:00
Miklos Szeredi 62c24a8e4b Add fs subtype support to libfuse and fusermount 2007-06-20 21:37:58 +00:00
Miklos Szeredi 3a7c00ec0c Add filesystem stacking support to high level API 2007-02-03 23:32:47 +00:00
Miklos Szeredi 288ed4ebce interrupt support 2006-09-07 06:02:44 +00:00
Miklos Szeredi 8d975f6fb3 fix 2006-03-17 15:56:05 +00:00
Miklos Szeredi 6f385414b2 fix 2006-03-17 15:05:40 +00:00
Miklos Szeredi 5d9ce36da4 fix 2006-03-01 12:10:13 +00:00
Csaba Henk ee588c01dc pass device file descriptor to fuse_unmount 2006-03-01 09:40:35 +00:00
Miklos Szeredi 1bf64f4806 fix 2006-02-17 15:49:25 +00:00
Miklos Szeredi 83deefd65f revert to version 2.6 2006-01-23 17:11:24 +00:00
Miklos Szeredi 065f222cd5 fix 2006-01-20 15:15:21 +00:00
Miklos Szeredi 95da860d29 fix 2006-01-06 18:29:40 +00:00
Miklos Szeredi 659743bc88 added option parsing 2005-12-09 17:41:42 +00:00
Miklos Szeredi 3a77047661 fix 2005-11-11 21:32:42 +00:00
Miklos Szeredi c706ad9ca0 fix 2005-11-07 15:30:48 +00:00
Miklos Szeredi c12c0ad0ce fix version-script 2005-08-15 14:39:35 +00:00
Miklos Szeredi a148242fb8 cleanup 2005-08-14 23:00:27 +00:00
Miklos Szeredi 2f8a9e633c fix fix 2005-08-05 05:57:25 +00:00
Miklos Szeredi cac5470594 fix 2005-08-01 10:44:45 +00:00
Miklos Szeredi 76c1752f14 inode based API first working version 2005-07-13 14:08:19 +00:00
Miklos Szeredi e56818b231 cleanup 2004-12-12 11:45:24 +00:00
Miklos Szeredi f458b8c07b cleanup 2004-12-07 16:46:42 +00:00