86 Commits

Author SHA1 Message Date
fangzhiyi18 bd5ee7c317 升级1.17.3
Signed-off-by: fangzhiyi18 <fangzhiyi1@h-partners.com>
2025-11-08 13:04:30 +08:00
psycho c99f6182b4 libfuse升级
Signed-off-by: psycho <wangmingxuan6@h-partners.com>
2024-01-09 09:19:42 +08:00
asafkahlon 968b7fd64f Define fuse_session_loop_mt as a macro on uclibc and MacOS (#532)
On uclibc and MacOS we don't use versioned symbols. Hence,
there's no definition for fuse_session_loop_mt on those cases
and the linker won't be able to resolve calls to fuse_session_loop_mt()

Signed-off-by: Asaf Kahlon <asafka7@gmail.com>
2020-08-09 12:37:26 +01:00
Bill Zissimopoulos 6017634e29 Fixed an issue with the linker version script. (#483)
Fixes #467.
2020-01-02 11:06:18 +00:00
Yuri Per 93b44b4db3 Implement lseek operation (#457) 2019-11-03 09:44:31 +00:00
Stefan Hajnoczi 846ec9bdf3 log: move fuse_log() to the public header file
Applications may wish to call fuse_log() for unified logging.  This way
they don't need to define their own wrappers to invoke the log message
handler function installed by fuse_set_log_func().

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2019-09-10 14:25:15 +01:00
Niels de Vos fe4f9428fc libfuse: add copy_file_range() support
Add support for the relatively new copy_file_range() syscall. Backend
filesystems can now implement an efficient way of cloning/duplicating
data ranges within files. See 'man 2 copy_file_range' for more details.
2018-11-19 12:33:56 +00:00
Mattias Nissler da7c9b228a Add unprivileged option in mount.fuse3
The unprivileged option allows to run the FUSE file system process
without privileges by dropping capabilities and preventing them from
being re-acquired via setuid / fscaps etc. To accomplish this,
mount.fuse sets up the `/dev/fuse` file descriptor and mount itself
and passes the file descriptor via the `/dev/fd/%u` mountpoint syntax
to the FUSE file system.
2018-10-09 20:36:22 +01:00
Nikolaus Rath 893e2d66c7 Fix versioned symbols in version script
According to "How to Write Shared Libraries" by Ulrich Drepper
(https://www.akkadia.org/drepper/dsohowto.pdf), the version script
should contain the exported name of the versioned symbol once in each
tag for which it has been defined by .symver.
2017-09-19 20:26:51 +01:00
Joseph Dodge f12d9686d4 Add idle_threads mount option. 2017-08-24 15:17:01 +02:00
Sławek Rudnicki 89f2bae00c Allow inode cache invalidation in high-level API
We re-introduce the functionality of invalidating the caches for an
inode specified by path by adding a new routine
fuse_invalidate_path. This is useful for network-based file systems
which use the high-level API, enabling them to notify the kernel about
external changes.

This is a revival of Miklos Szeredi's original code for the
fuse_invalidate routine.
2017-08-24 14:20:37 +02:00
Nikolaus Rath e870a0427a Added public fuse_lib_help(), bumped minor version 2017-07-08 12:48:08 +02:00
pablomh 4fd1670999 Remove fuse_fs_fgetattr and fuse_fs_ftruncate from linker script
They were removed from source here: https://github.com/libfuse/libfuse/commit/73b6ff4b75cf1228ea61262c293fcb2fda5dfeea
2017-05-25 11:51:13 -07:00
Nikolaus Rath 155b3c6aa2 Update linker script
- Fixes commit d49f2e77b4.
- Fixes commit 199fc0f833.
- Thanks to Github user mtheall for the review!
2016-10-17 20:20:21 -07:00
Nikolaus Rath 225c12aebf fuse_parse_cmdline(): do not print help/version text
The current behavior makes it difficult to add help for
additional options. With the change, this becomes a lot easier.
2016-10-09 22:03:07 -07:00
Nikolaus Rath 1014e1fc93 Added missing export of fuse_pkgversion. 2016-10-09 22:03:07 -07:00
Nikolaus Rath 2ac973ef4c Added fuse_session_fd()
Fixes #59.
2016-10-02 21:48:47 -07:00
Nikolaus Rath 425db842ff Don't handle --help and --version in fuse_session_new().
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.
2016-10-02 21:09:37 -07:00
Nikolaus Rath 5698ee09cf Turn struct fuse_chan into an implementation detail
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.
2016-10-02 13:56:40 -07:00
Nikolaus Rath f164e9b8ca Renamed fuse_lowlevel_new() to fuse_session_new(). 2016-10-02 10:52:45 -07:00
Nikolaus Rath 50f5255a44 Introduce separate mount/umount functions for low-level API. 2016-10-02 10:51:34 -07:00
Nikolaus Rath 1ac9551d9a Tell emacs to use tabs for linkerscript. 2016-10-02 10:46:49 -07:00
Miklos Szeredi 561d7054d8 libfuse: remove fuse_chan_bufsize()
Remove fuse_chan_bufsize() from the lowlevel API.
fuse_session_receive_buf() is now responsible for allocating memory for the
buffer.
2013-06-21 18:17:27 +02:00
Miklos Szeredi f0dcdad3a6 libfuse: clean up fuse_chan
Clean up fuse_chan related interfaces.  Remove the following from the
lowlevel library API:

struct fuse_chan_ops;
fuse_chan_new();
fuse_chan_session();
fuse_chan_recv();
fuse_chan_send();
2013-06-21 13:35:30 +02:00
Miklos Szeredi b13051ae41 libfuse: clean up fuse_session
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-06-21 13:35:30 +02:00
Miklos Szeredi 2bcfd55fc1 libfuse: replace fuse_session_next_chan
Replace fuse_session_next_chan() with fuse_session_chan(), as multiple
channels per session were never actually supported and probably never will.
2013-06-21 13:35:30 +02:00
Miklos Szeredi 787fc5195b libfuse: remove channel user data 2013-06-20 11:43:02 +02:00
Miklos Szeredi 4e602d6f0c remove real fuse_main() symbol 2013-02-22 14:30:22 +01:00
Miklos Szeredi 00dd7b48ec clean fuse_chan_receive from versionscript 2013-02-22 14:26:20 +01:00
Miklos Szeredi aebc2ebeb1 libfuse: remove deprecated fuse_lowlevel_is_lib_option() 2013-02-08 08:03:02 +01:00
Miklos Szeredi 47a1ef9142 libfuse: remove deprecated fuse_exited() 2013-02-08 08:03:02 +01:00
Miklos Szeredi baef74043c libfuse: remove deprecated fuse_setup(), fuse_teardown() 2013-02-08 08:03:02 +01:00
Miklos Szeredi 88db3e94ef libfuse: remove deprecated fuse_read_cmd(), fuse_process_cmd() 2013-02-08 08:03:02 +01:00
Miklos Szeredi 1d63685572 libfuse: remove deprecated fuse_loop_mt_proc() 2013-02-08 08:03:01 +01:00
Miklos Szeredi 1c317e8773 libfuse: remove deprecated fuse_set_getcontext_func() 2013-02-08 08:03:01 +01:00
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