qemu-gpiodev/libfuse.git
9 years agoMigrated README to README.md for Markdown rendering on GitHub.
Nikolaus Rath [Sun, 20 Dec 2015 21:52:30 +0000 (13:52 -0800)]
Migrated README to README.md for Markdown rendering on GitHub.

9 years agoMerge branch 'clone_fd'
Miklos Szeredi [Tue, 29 Sep 2015 15:51:32 +0000 (17:51 +0200)]
Merge branch 'clone_fd'

9 years agoMerge git://git.code.sf.net/u/xophmeister/fuse
Miklos Szeredi [Fri, 14 Aug 2015 04:51:59 +0000 (06:51 +0200)]
Merge git://git.code.sf.net/u/xophmeister/fuse

9 years agoCanonicalised whitespace and added ChangeLog entry
Christopher Harrison [Wed, 12 Aug 2015 13:55:13 +0000 (14:55 +0100)]
Canonicalised whitespace and added ChangeLog entry

9 years agolibfuse: fix warning mount.c:receive_fd()
Miklos Szeredi [Wed, 12 Aug 2015 09:51:39 +0000 (11:51 +0200)]
libfuse: fix warning mount.c:receive_fd()

Reported by Albert Berger

9 years agoAdded fuse_pkgversion function
Christopher Harrison [Thu, 30 Jul 2015 10:05:34 +0000 (11:05 +0100)]
Added fuse_pkgversion function

Returns the full PACKAGE_VERSION string, per autoconf

9 years agolibfuse: fix possible memory leak
Miklos Szeredi [Mon, 29 Jun 2015 16:08:07 +0000 (18:08 +0200)]
libfuse: fix possible memory leak

Reported by Jose R. Guzman

9 years agoUse system directory for system-wide udev rules by default
Ikey Doherty [Fri, 22 May 2015 12:53:25 +0000 (13:53 +0100)]
Use system directory for system-wide udev rules by default

This ensures that fuse functions correctly on stateless operating systems
without requiring use of the site configuration directory (/etc/).

Signed-off-by: Ikey Doherty <michael.i.doherty@intel.com>
9 years agolibfuse: fix exec environment for mount and umount
Miklos Szeredi [Fri, 22 May 2015 08:58:43 +0000 (10:58 +0200)]
libfuse: fix exec environment for mount and umount

Found by Tavis Ormandy (CVE-2015-3202).

9 years agolibfuse: add "clone_fd" option
Miklos Szeredi [Mon, 18 May 2015 14:55:20 +0000 (16:55 +0200)]
libfuse: add "clone_fd" option

This creates a separate device file descriptor for each processing thread,
which might improve performance.

9 years agolibfuse: get ref for req
Miklos Szeredi [Mon, 18 May 2015 14:55:20 +0000 (16:55 +0200)]
libfuse: get ref for req

While the request lives don't free the channel associated with the request,
the answer will need to be written on the channel.

9 years agolibfuse: refcount fuse_chan objects
Miklos Szeredi [Mon, 18 May 2015 14:55:20 +0000 (16:55 +0200)]
libfuse: refcount fuse_chan objects

New functions: fuse_chan_get(), fuse_chan_put().  Removed function:
fuse_chan_destroy().

9 years agolibfuse: add FUSE_CAP_NO_OPEN_SUPPORT flag to ->init()
Miklos Szeredi [Thu, 23 Apr 2015 12:13:18 +0000 (14:13 +0200)]
libfuse: add FUSE_CAP_NO_OPEN_SUPPORT flag to ->init()

10 years agolibfuse: fix handling of '.' and '..' in highlevel readdirplus
Miklos Szeredi [Thu, 26 Feb 2015 16:12:30 +0000 (17:12 +0100)]
libfuse: fix handling of '.' and '..' in highlevel readdirplus

10 years agolibfuse: fix fuse_remove_signal_handlers()
Miklos Szeredi [Thu, 26 Feb 2015 15:57:41 +0000 (16:57 +0100)]
libfuse: fix fuse_remove_signal_handlers()

to properly restore the default signal handler.

Reported by: Chris Johnson <johnsocg@gmail.com>

10 years agoFix docs of lowlevel readdirplus()
Miklos Szeredi [Tue, 25 Nov 2014 15:20:14 +0000 (16:20 +0100)]
Fix docs of lowlevel readdirplus()

Reported by Michael j Theall.

10 years agolibfuse: highlevel API: fix directory file handle passed to ioctl() method
Miklos Szeredi [Mon, 21 Jul 2014 16:53:04 +0000 (18:53 +0200)]
libfuse: highlevel API: fix directory file handle passed to ioctl() method

Reported by Eric Biggers

10 years agoChangeLog fix
Miklos Szeredi [Tue, 15 Jul 2014 16:03:24 +0000 (18:03 +0200)]
ChangeLog fix

10 years agolibfuse: add flags to ->rename()
Miklos Szeredi [Tue, 15 Jul 2014 16:02:19 +0000 (18:02 +0200)]
libfuse: add flags to ->rename()

See renameat2() system call in linux-3.15 and later kernels.

10 years agolibfuse: allow setting ctime in ->setattr()
Miklos Szeredi [Tue, 15 Jul 2014 15:41:02 +0000 (17:41 +0200)]
libfuse: allow setting ctime in ->setattr()

10 years agolibfuse: add "time_gran" option
Miklos Szeredi [Tue, 15 Jul 2014 15:11:08 +0000 (17:11 +0200)]
libfuse: add "time_gran" option

This allows the filesystem to specify the time granularity it
supports when the kernel is responsible for updating times
("writeback_cache" option).

10 years agofusermount, libfuse: send value as unsigned in "user_id=" and "group_id="
Miklos Szeredi [Tue, 15 Jul 2014 14:03:12 +0000 (16:03 +0200)]
fusermount, libfuse: send value as unsigned in "user_id=" and "group_id="

...options.  Uids/gids larger than 2147483647 would result in EINVAL when
mounting the filesystem.  This also needs a fix in the kernel.

10 years agolibfuse: document deadlock avoidance for fuse_notify_inval_entry()
Miklos Szeredi [Tue, 15 Jul 2014 09:57:37 +0000 (11:57 +0200)]
libfuse: document deadlock avoidance for fuse_notify_inval_entry()

and fuse_notify_delete()

Reported by Han-Wen Nienhuys

11 years agoInitilaize stat buffer passed to ->getattr() and ->fgetattr()
Miklos Szeredi [Wed, 26 Mar 2014 15:46:38 +0000 (16:46 +0100)]
Initilaize stat buffer passed to ->getattr() and ->fgetattr()
to zero in all cases.

Reported by Daniel Iwan.

11 years agocompile fix for fuse_lo-plus
Miklos Szeredi [Tue, 18 Mar 2014 11:01:45 +0000 (12:01 +0100)]
compile fix for fuse_lo-plus

11 years agocompile fix
Miklos Szeredi [Mon, 17 Mar 2014 10:51:43 +0000 (11:51 +0100)]
compile fix

11 years agolibfuse: implement readdirplus for high-level API
Eric Wong [Wed, 5 Mar 2014 13:45:44 +0000 (14:45 +0100)]
libfuse: implement readdirplus for high-level API

Reuse the old "readdir" callback, but add a flags argument, that has
FUSE_READDIR_PLUS in case this is a "plus" version.  Filesystems can safely
ignore this flag, but if they want they can add optimizations based on it:
i.e. only retrieve the full attributes in PLUS mode.

The filler function is also given a flags argument and the filesystem can
set FUSE_FILL_DIR_PLUS if all the attributes in "stat" are valid.

11 years agoAllocate buffer when splicing from the fuse device
Miklos Szeredi [Thu, 27 Feb 2014 14:02:12 +0000 (15:02 +0100)]
Allocate buffer when splicing from the fuse device

Was broken by commit 561d7054d856 "libfuse: remove fuse_chan_bufsize()".

11 years agolibfuse: added fuse_lo-plus.c to the examples
Miklos Szeredi [Fri, 21 Feb 2014 16:52:36 +0000 (17:52 +0100)]
libfuse: added fuse_lo-plus.c to the examples

11 years agofuse: use dlsym() instead of relying on ld.so constructor functions
Fabrice Bauzac [Mon, 23 Sep 2013 14:57:50 +0000 (16:57 +0200)]
fuse: use dlsym() instead of relying on ld.so constructor functions

11 years agolibfuse: Add "async_dio" and "writeback_cache" options
Miklos Szeredi [Wed, 29 Jan 2014 13:13:36 +0000 (14:13 +0100)]
libfuse: Add "async_dio" and "writeback_cache" options

Asynchronous direct I/O is supported by linux kernels 3.13 and
later, writeback caching is supported by 3.14 and later.

11 years ago"pkg-config fuse3 --libs" gives the wrong library name
Miklos Szeredi [Wed, 11 Dec 2013 14:43:45 +0000 (15:43 +0100)]
"pkg-config fuse3 --libs" gives the wrong library name

Reported-by: Michael j Theall
11 years agoFix fuse_add_direntry_plus()
Miklos Szeredi [Fri, 29 Nov 2013 16:58:03 +0000 (17:58 +0100)]
Fix fuse_add_direntry_plus()

11 years agoAdvertize the existence of some "configure" env vars.
Fabrice Bauzac [Fri, 2 Aug 2013 09:15:54 +0000 (11:15 +0200)]
Advertize the existence of some "configure" env vars.

Advertize the existence of env vars MOUNT_FUSE_PATH, UDEV_RULES_PATH
and INIT_D_PATH in the execution of ./configure.

11 years agotest: add a realdir option
Miklos Szeredi [Fri, 20 Sep 2013 11:57:41 +0000 (13:57 +0200)]
test: add a realdir option

11 years agolibfuse: add the "subdir-objects" automake option
Fabrice Bauzac [Fri, 2 Aug 2013 08:19:41 +0000 (10:19 +0200)]
libfuse: add the "subdir-objects" automake option

to fix a warning issued by automake 1.14.

11 years agoMerge remote-tracking branch 'origin/fuse_2_9_bugfix'
Miklos Szeredi [Mon, 26 Aug 2013 10:11:42 +0000 (12:11 +0200)]
Merge remote-tracking branch 'origin/fuse_2_9_bugfix'

11 years agoAdd missing includes
Daniel Thau [Mon, 26 Aug 2013 09:57:16 +0000 (11:57 +0200)]
Add missing includes

This allows compiling fuse with musl.

11 years agoDon't close -1 fd in fuse_chan_destroy()
Miklos Szeredi [Mon, 26 Aug 2013 09:33:33 +0000 (11:33 +0200)]
Don't close -1 fd in fuse_chan_destroy()

Valgrind warns on close(-1).  So don't do this (happens if fuse_chan_clearfd()
was called on the channel).

11 years agoChange generation and nlookup from 'unsigned long' to 'uint64_t'
Miklos Szeredi [Mon, 26 Aug 2013 09:23:08 +0000 (11:23 +0200)]
Change generation and nlookup from 'unsigned long' to 'uint64_t'

11 years agoPrint help on stdout instead of stderr
Miklos Szeredi [Fri, 26 Jul 2013 14:20:28 +0000 (16:20 +0200)]
Print help on stdout instead of stderr

11 years agoulockmgr: strip ulockmgr support from this source package
Miklos Szeredi [Thu, 25 Jul 2013 15:58:48 +0000 (17:58 +0200)]
ulockmgr: strip ulockmgr support from this source package

Distribute ulockmgr separately.  It is not needed for the building of
libfuse, only fusexmp_fh.  Check ulockmgr library in ./configure and if not
disable remote-lock suport in fusexmp_fh.

11 years agolibfuse: fuse -> fuse3
Miklos Szeredi [Thu, 25 Jul 2013 14:54:42 +0000 (16:54 +0200)]
libfuse: fuse -> fuse3

Allow 2.X and 3.X to coexist.  Includes are now stored under
/usr/include/fuse3 and library is named libfuse3.*.  Invoke pkg-config with
"fuse3" as the first argument to build with version 3 of the library.

11 years agoUse AC_PROG_CC_STDC instead of AC_PROG_CC
Miklos Szeredi [Thu, 25 Jul 2013 09:38:28 +0000 (11:38 +0200)]
Use AC_PROG_CC_STDC instead of AC_PROG_CC

We do need a C99 compiler

11 years agolibfuse: remove "-D_FILE_OFFSET_BITS=64" from fuse.pc
Miklos Szeredi [Wed, 24 Jul 2013 15:09:26 +0000 (17:09 +0200)]
libfuse: remove "-D_FILE_OFFSET_BITS=64" from fuse.pc

add AC_SYS_LARGEFILE to your configure.ac instead.

11 years agolibfuse: clean up struct fuse_file_info
Miklos Szeredi [Thu, 18 Jul 2013 13:45:58 +0000 (15:45 +0200)]
libfuse: clean up struct fuse_file_info

Remove 'fh_old' which was an ABI compatibility field for a long time.

Make 'writepage' a bitfield.

11 years agoDocumentation fixes
Miklos Szeredi [Wed, 17 Jul 2013 13:58:53 +0000 (15:58 +0200)]
Documentation fixes

11 years agoMerge https://github.com/qknight/fuse-fuse
Miklos Szeredi [Wed, 17 Jul 2013 13:14:55 +0000 (15:14 +0200)]
Merge https://github.com/qknight/fuse-fuse

11 years agorewrote c++ style comments to c style coments mentioned by Miklos Szeredi
Joachim Schiele [Tue, 2 Jul 2013 15:37:29 +0000 (17:37 +0200)]
rewrote c++ style comments to c style coments mentioned by Miklos Szeredi

11 years agoReleased 2.9.3 fuse_2_9_3
Miklos Szeredi [Mon, 1 Jul 2013 08:48:51 +0000 (10:48 +0200)]
Released 2.9.3

11 years agolibfuse: don't close fd if it's -1
Miklos Szeredi [Mon, 1 Jul 2013 08:18:49 +0000 (10:18 +0200)]
libfuse: don't close fd if it's -1

This prevents a valgrind warning.

11 years agolibfuse: fix multiple close of device fd
Miklos Szeredi [Thu, 20 Jun 2013 09:43:02 +0000 (11:43 +0200)]
libfuse: fix multiple close of device fd

- fuse_kern_unmount closes handle (e.g. 19)
- a thread in my process opens a file - the OS assigns newly freed
handle (i.e. 19)
- fuse_kern_chan_destroy closes the same handle (i.e. 19)
- a thread in my process opens another file - the OS assigns newly
freed handle (i.e. 19)
- * MAYHEM *

Reported by Dan Greenfield

11 years agolibfuse: remove session and chan abstractions
Miklos Szeredi [Fri, 21 Jun 2013 16:20:23 +0000 (18:20 +0200)]
libfuse: remove session and chan abstractions

There's actually just one type of channel and session, so we don't need the
generic callback functions.

11 years agolibfuse: remove fuse_chan_bufsize()
Miklos Szeredi [Fri, 21 Jun 2013 16:17:27 +0000 (18:17 +0200)]
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.

11 years agolibfuse: remove fuse_chan_(send|receive)
Miklos Szeredi [Fri, 21 Jun 2013 16:17:27 +0000 (18:17 +0200)]
libfuse: remove fuse_chan_(send|receive)

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.

11 years agolibfuse: set FD_CLOEXEC also when receiving device fd from fusermount
Miklos Szeredi [Fri, 21 Jun 2013 12:03:08 +0000 (14:03 +0200)]
libfuse: set FD_CLOEXEC also when receiving device fd from fusermount

11 years agolibfuse: clean up fuse_chan
Miklos Szeredi [Fri, 21 Jun 2013 11:35:30 +0000 (13:35 +0200)]
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();

11 years agolibfuse: clean up fuse_session
Miklos Szeredi [Fri, 21 Jun 2013 11:35:30 +0000 (13:35 +0200)]
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();

11 years agolibfuse: replace fuse_session_next_chan
Miklos Szeredi [Fri, 21 Jun 2013 11:35:30 +0000 (13:35 +0200)]
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.

11 years ago- added a doxygen main page
Joachim Schiele [Thu, 20 Jun 2013 17:18:18 +0000 (19:18 +0200)]
- added a doxygen main page

- 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

11 years agolibfuse: fix multiple close of device fd
Miklos Szeredi [Thu, 20 Jun 2013 09:43:02 +0000 (11:43 +0200)]
libfuse: fix multiple close of device fd

- fuse_kern_unmount closes handle (e.g. 19)
- a thread in my process opens a file - the OS assigns newly freed
handle (i.e. 19)
- fuse_kern_chan_destroy closes the same handle (i.e. 19)
- a thread in my process opens another file - the OS assigns newly
freed handle (i.e. 19)
- * MAYHEM *

Reported by Dan Greenfield

11 years agolibfuse: remove channel user data
Miklos Szeredi [Thu, 20 Jun 2013 09:43:02 +0000 (11:43 +0200)]
libfuse: remove channel user data

11 years agolibfuse: fix readdirplus doc
Nikolaus Rath [Mon, 20 May 2013 12:44:59 +0000 (14:44 +0200)]
libfuse: fix readdirplus doc

Returning entry in readdir does not result in bump of lookup count.

Returning entry in readdirplus DOES result in increase of lookup count by
1. You need to provide valid nodeid and valid stat structure (with at least
valid type) for each entry.

11 years agofuse: synchronize fuse_kernel.h header with the linux kernel
Miklos Szeredi [Mon, 20 May 2013 12:38:37 +0000 (14:38 +0200)]
fuse: synchronize fuse_kernel.h header with the linux kernel

Check for __KERNEL__ instead of __linux__ and use the standard int
types instead of the linux specific ones.

12 years agoMerge branch 'fuse_2_9_bugfix'
Miklos Szeredi [Tue, 19 Mar 2013 16:33:46 +0000 (17:33 +0100)]
Merge branch 'fuse_2_9_bugfix'

12 years agolibfuse: fix thread cancel race
Miklos Szeredi [Tue, 19 Mar 2013 16:16:14 +0000 (17:16 +0100)]
libfuse: fix thread cancel race

Exiting a worker my race with cancelling that same worker.  This caused a
segmenation fault.

Reported and tested by Anatol Pomozov

12 years agoremove real fuse_main() symbol
Miklos Szeredi [Fri, 22 Feb 2013 13:30:22 +0000 (14:30 +0100)]
remove real fuse_main() symbol

12 years agoclean fuse_chan_receive from versionscript
Miklos Szeredi [Fri, 22 Feb 2013 13:26:20 +0000 (14:26 +0100)]
clean fuse_chan_receive from versionscript

12 years agofix fi->fh format strings
Miklos Szeredi [Thu, 21 Feb 2013 08:43:44 +0000 (09:43 +0100)]
fix fi->fh format strings

12 years agoFix nodeid format strings
Miklos Szeredi [Wed, 20 Feb 2013 20:58:41 +0000 (21:58 +0100)]
Fix nodeid format strings

12 years agolibfuse: don't force -D_FILE_OFFSET_BITS=64 in pkgconfig file.
Richard W.M. Jones [Tue, 20 Mar 2012 10:51:23 +0000 (10:51 +0000)]
libfuse: don't force -D_FILE_OFFSET_BITS=64 in pkgconfig file.

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'.

12 years agocuse: clean includes
Miklos Szeredi [Wed, 20 Feb 2013 14:59:08 +0000 (15:59 +0100)]
cuse: clean includes

12 years agolibfuse: use O_CLOEXEC flag when opening /dev/fuse device
Richard W.M. Jones [Mon, 2 Apr 2012 18:04:02 +0000 (19:04 +0100)]
libfuse: use O_CLOEXEC flag when opening /dev/fuse device

12 years agolibfuse: 64bit fuse_ino_t
Miklos Szeredi [Wed, 20 Feb 2013 14:59:08 +0000 (15:59 +0100)]
libfuse: 64bit fuse_ino_t

Change the type of fuse_ino_t from 'unsigned long' to 'uint64_t'.  This only
changes the size on 32bit architectures.

12 years agofuse_daemonize(): chdir to "/" even if not running in the background
Miklos Szeredi [Tue, 19 Feb 2013 13:14:40 +0000 (14:14 +0100)]
fuse_daemonize(): chdir to "/" even if not running in the background

for consistency.

Reported by Vladimir Rutsky

12 years agofuse_opt_parse(): fix memory leak
Miklos Szeredi [Mon, 18 Feb 2013 15:24:11 +0000 (16:24 +0100)]
fuse_opt_parse(): fix memory leak

when storing a newly allocated string for format "%s", free the previous value
stored at that location.

Reported by Marco Schuster

12 years agoAdd "nopath" to help.
Miklos Szeredi [Mon, 18 Feb 2013 13:43:08 +0000 (14:43 +0100)]
Add "nopath" to help.

12 years agoremove <utime.h> include from <fuse.h>
Miklos Szeredi [Fri, 8 Feb 2013 07:25:10 +0000 (08:25 +0100)]
remove <utime.h> include from <fuse.h>

12 years agolibfuse: remove struct fuse_cmd
Miklos Szeredi [Fri, 8 Feb 2013 07:15:55 +0000 (08:15 +0100)]
libfuse: remove struct fuse_cmd

12 years agoupdate .gitignore
Miklos Szeredi [Fri, 8 Feb 2013 07:04:50 +0000 (08:04 +0100)]
update .gitignore

12 years agolibfuse: remove deprecated fuse_operations.utime_omit_ok
Miklos Szeredi [Fri, 8 Feb 2013 07:03:02 +0000 (08:03 +0100)]
libfuse: remove deprecated fuse_operations.utime_omit_ok

12 years agolibfuse: remove deprecated fuse_operations.utime()
Miklos Szeredi [Fri, 8 Feb 2013 07:03:02 +0000 (08:03 +0100)]
libfuse: remove deprecated fuse_operations.utime()

12 years agolibfuse: remove deprecated fuse_operations.getdir()
Miklos Szeredi [Fri, 8 Feb 2013 07:03:02 +0000 (08:03 +0100)]
libfuse: remove deprecated fuse_operations.getdir()

12 years agolibfuse: remove deprecated fuse_lowlevel_is_lib_option()
Miklos Szeredi [Fri, 8 Feb 2013 07:03:02 +0000 (08:03 +0100)]
libfuse: remove deprecated fuse_lowlevel_is_lib_option()

12 years agolibfuse: remove deprecated fuse_exited()
Miklos Szeredi [Fri, 8 Feb 2013 07:03:02 +0000 (08:03 +0100)]
libfuse: remove deprecated fuse_exited()

12 years agolibfuse: remove deprecated fuse_setup(), fuse_teardown()
Miklos Szeredi [Fri, 8 Feb 2013 07:03:02 +0000 (08:03 +0100)]
libfuse: remove deprecated fuse_setup(), fuse_teardown()

12 years agolibfuse: remove deprecated fuse_read_cmd(), fuse_process_cmd()
Miklos Szeredi [Fri, 8 Feb 2013 07:03:02 +0000 (08:03 +0100)]
libfuse: remove deprecated fuse_read_cmd(), fuse_process_cmd()

12 years agolibfuse: remove deprecated fuse_loop_mt_proc()
Miklos Szeredi [Fri, 8 Feb 2013 07:03:01 +0000 (08:03 +0100)]
libfuse: remove deprecated fuse_loop_mt_proc()

12 years agolibfuse: remove deprecated fuse_set_getcontext_func()
Miklos Szeredi [Fri, 8 Feb 2013 07:03:01 +0000 (08:03 +0100)]
libfuse: remove deprecated fuse_set_getcontext_func()

12 years agolibfuse: remove deprecated fuse_invalidate()
Miklos Szeredi [Fri, 8 Feb 2013 07:03:01 +0000 (08:03 +0100)]
libfuse: remove deprecated fuse_invalidate()

12 years agolibfuse: remove deprecated fuse_is_lib_option()
Miklos Szeredi [Fri, 8 Feb 2013 07:03:01 +0000 (08:03 +0100)]
libfuse: remove deprecated fuse_is_lib_option()

12 years agolibfuse: pass security context options to kernel
Dalvik Khertel [Thu, 9 Aug 2012 12:48:20 +0000 (12:48 +0000)]
libfuse: pass security context options to kernel

Mount can be used with an "-o context=" option in order to specify a
mountpoint-wide SELinux security context different from the default context
provided by the active SELinux policy.

This is useful in order to enable users to mount multiple sshfs targets under
distinct contexts, which is my main motivation for getting this patch mainlined.

12 years agolibfuse: allow disabling adaptive readdirplus
Eric Wong [Thu, 7 Feb 2013 02:52:41 +0000 (02:52 +0000)]
libfuse: allow disabling adaptive readdirplus

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).

12 years agolibfuse-fix-fs-cleanup
Miklos Szeredi [Thu, 7 Feb 2013 13:59:28 +0000 (14:59 +0100)]
libfuse-fix-fs-cleanup

This fixes a segmentation fault if command-line option parsing fails during
initialization.

Reported by Eric Wong

12 years agolibfuse: add poll_events to fuse_file_info
Enke Chen [Thu, 7 Feb 2013 13:58:50 +0000 (14:58 +0100)]
libfuse: add poll_events to fuse_file_info

Make requested poll events available to the filesystem.  If the requested
eventsare not available, then this field is zero.

12 years agolibfuse: add readdirplus support in fuse_lowlevel_ops
Feng Shuo [Fri, 4 Jan 2013 08:23:31 +0000 (16:23 +0800)]
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>
12 years agofuse_kernel.h: clean includes
Riku Voipio [Thu, 7 Feb 2013 11:04:21 +0000 (12:04 +0100)]
fuse_kernel.h: clean includes

Use <linux/types.h> for linux and define types used for other operating systems
using <stdint.h> types.

12 years agolibfuse: Add '[no_]auto_inval_data' mount option
Feng Shuo [Fri, 4 Jan 2013 08:23:30 +0000 (16:23 +0800)]
libfuse: Add '[no_]auto_inval_data' mount option

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>
12 years agolibfuse: add missing INIT flags
Miklos Szeredi [Wed, 6 Feb 2013 16:20:50 +0000 (17:20 +0100)]
libfuse: add missing INIT flags

Add missing flags that userspace derived from the protocol version number.  This
makes the protocol more flexible.

12 years agolibfuse: set close-on-exec flag on pipe file descriptors
Eric Wong [Wed, 6 Feb 2013 09:51:40 +0000 (09:51 +0000)]
libfuse: set close-on-exec flag on pipe file descriptors

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.