qemu-gpiodev/libfuse.git
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.

12 years agolibfuse: fix fuse_get_context() in non fuse threads
Miklos Szeredi [Tue, 5 Feb 2013 12:36:06 +0000 (13:36 +0100)]
libfuse: fix fuse_get_context() in non fuse threads

fuse_interrupted(), fuse_get_context(), etc... crashed in non-fuse threads.

Instead return false, NULL or error depending on the function.

Reported by Michael Berlin

12 years agoCreate doc/.gitignore
Miklos Szeredi [Tue, 5 Feb 2013 12:20:25 +0000 (13:20 +0100)]
Create doc/.gitignore

12 years agoMerge branch 'fuse_2_9_bugfix'
Miklos Szeredi [Mon, 4 Feb 2013 17:32:38 +0000 (18:32 +0100)]
Merge branch 'fuse_2_9_bugfix'

12 years agolibfuse: rename ./configure.in to ./configure.ac
Anatol Pomozov [Sun, 3 Feb 2013 01:32:46 +0000 (17:32 -0800)]
libfuse: rename ./configure.in to ./configure.ac

Next version of automake (1.14) removes support for the deprecated filename

http://lists.gnu.org/archive/html/autotools-announce/2013-01/msg00000.html

12 years agolibfuse: Use AC_CONFIG_HEADERS instead of AM_CONFIG_HEADER
Anatol Pomozov [Sun, 3 Feb 2013 01:32:45 +0000 (17:32 -0800)]
libfuse: Use AC_CONFIG_HEADERS instead of AM_CONFIG_HEADER

AM_CONFIG_HEADER has been deprecated for years and autotools 1.13
removes this macros at all.

12 years agolibfuse: configure: detect new util-linux
Miklos Szeredi [Mon, 4 Feb 2013 17:30:14 +0000 (18:30 +0100)]
libfuse: configure: detect new util-linux

Apparently new versions of util-linux umount return with an exit status of 1
even if the "--fake" option is recognised (despite being documented otherwise).
Check this condition and don't complain about util-linux version.

12 years agolibfuse: fix the 'remember' option
Madan Valluri [Mon, 4 Feb 2013 17:30:14 +0000 (18:30 +0100)]
libfuse: fix the 'remember' option

The lru list was not initialized for the "/" path.  This resulted in
remove_node_lru() crashing on LOOKUP-DOTDOT.

Patch by Madan Valluri.
--
 ChangeLog  |    4 ++++
 lib/fuse.c |    4 ++++
 2 files changed, 8 insertions(+)

12 years agolibfuse: fix crash in unlock_path()
Ratna_Bolla@dell.com [Mon, 4 Feb 2013 17:30:14 +0000 (18:30 +0100)]
libfuse: fix crash in unlock_path()

Patch by Ratna Manoj.

queue_element_unlock() should set ->first_locked and ->second_locked to false.

Discovered with 'fs_racer'.  The assert(wnode->treelock == TREELOCK_WRITE) in
unlock_path() was hit within minutes.

Miklos: simplified patch

12 years agoReleased 2.9.2 fuse_2_9_2
Miklos Szeredi [Mon, 1 Oct 2012 17:56:49 +0000 (19:56 +0200)]
Released 2.9.2

12 years agoFix deadlock in libfuse
Miklos Szeredi [Mon, 1 Oct 2012 15:55:55 +0000 (17:55 +0200)]
Fix deadlock in libfuse

Running "svn update" on a fuse filesystem could deadlock because of a bug in the
way the paths are locked.

Reported by Kazuaki Anami

12 years agoFix missing config.h in buffer.c
Miklos Szeredi [Fri, 24 Aug 2012 13:13:17 +0000 (15:13 +0200)]
Fix missing config.h in buffer.c

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

12 years agoMerge branch 'fuse_2_9_bugfix'
Miklos Szeredi [Tue, 14 Aug 2012 12:03:10 +0000 (14:03 +0200)]
Merge branch 'fuse_2_9_bugfix'

12 years agoZero out node when allocating from a slab.
Miklos Szeredi [Tue, 14 Aug 2012 10:16:00 +0000 (12:16 +0200)]
Zero out node when allocating from a slab.

Fix compile warning when not using node slab.

12 years agoFix "fuse internal error: node NNN not found"
Miklos Szeredi [Tue, 14 Aug 2012 09:18:07 +0000 (11:18 +0200)]
Fix "fuse internal error: node NNN not found"

Commit 4dc7e675bb (Don't unhash name in FORGET) broke the forget logic in a
subtle way, resulting in "fuse internal error: node NNN not found" and causing
the filesystem daemon to abort.

Fix by incrementing the node refcount if nlookup goes from zero to one.

Reported by Kyle Lippincott

12 years agoMerge branch 'fuse_2_9_bugfix'
Miklos Szeredi [Mon, 13 Aug 2012 10:59:29 +0000 (12:59 +0200)]
Merge branch 'fuse_2_9_bugfix'

12 years agoFix linking against GNU libiconv
Natanael Copa [Thu, 9 Aug 2012 14:41:05 +0000 (16:41 +0200)]
Fix linking against GNU libiconv

Use quotation marks when assigning shell variable.

This broke by 384496dd02cfd9a74b95d62ce0d23a31a7af3730, most likely by mistake.

12 years agoMove flags to the front of struct fuse_operations
Miklos Szeredi [Fri, 20 Jul 2012 07:51:24 +0000 (09:51 +0200)]
Move flags to the front of struct fuse_operations

12 years agoRemove compatibility path handling
Miklos Szeredi [Fri, 20 Jul 2012 07:45:09 +0000 (09:45 +0200)]
Remove compatibility path handling

This means that now NULL is a valid path for operations that take a file
descriptor if the file was unlinked and hard_remove option is specified.

12 years agoRemove include/old directory
Miklos Szeredi [Thu, 19 Jul 2012 17:03:53 +0000 (19:03 +0200)]
Remove include/old directory

12 years agoRemove compat functions
Miklos Szeredi [Thu, 19 Jul 2012 17:02:42 +0000 (19:02 +0200)]
Remove compat functions

12 years agoRemove old symbol versions
Miklos Szeredi [Thu, 19 Jul 2012 16:47:51 +0000 (18:47 +0200)]
Remove old symbol versions

12 years agoStart of 3.0 series
Miklos Szeredi [Thu, 19 Jul 2012 16:40:11 +0000 (18:40 +0200)]
Start of 3.0 series

Change the version numbers.

This is going to be a new major version of the library breaking backward
compatibility on the binary level as well as the source level.

12 years agoReleased 2.9.1 fuse_2_9_1 fuse_3_0_start
Miklos Szeredi [Thu, 19 Jul 2012 13:22:38 +0000 (15:22 +0200)]
Released 2.9.1

12 years agoFix crash caused by freeing a stack address
Miklos Szeredi [Thu, 19 Jul 2012 13:05:56 +0000 (15:05 +0200)]
Fix crash caused by freeing a stack address

The failure path of try_get_path2() erronously tried to free the "path1" value
(an address on the stack) instead of the allocated string pointed to by "path1".
This caused the library to crash.

Reported by Itay Perl

12 years agoAdd fallocate to NEWS
Miklos Szeredi [Thu, 19 Jul 2012 13:02:02 +0000 (15:02 +0200)]
Add fallocate to NEWS

12 years agolibfuse: mark some data constant
Miklos Szeredi [Wed, 4 Jul 2012 10:19:29 +0000 (12:19 +0200)]
libfuse: mark some data constant

12 years agoFix build with automake >= 1.12.1
Olivier Blin [Mon, 2 Jul 2012 16:50:56 +0000 (18:50 +0200)]
Fix build with automake >= 1.12.1

mkdir_p is deprecated since automake 1.12.1 (see automake commit
7a1eb9ff9027929687f12905e131f6fda3fa6d0c).

MKDIR_P should be used instead of mkdir_p.
This is available since autoconf 2.59d (2006-06-05), by calling
AC_PROG_MKDIR_P.

The mkdir_p workaround was not working anyway for out-of-tree builds,
since the ../mkinstalldirs path would be incorrect.

12 years agoFix install from out-of-tree build
Olivier Blin [Mon, 2 Jul 2012 16:50:55 +0000 (18:50 +0200)]
Fix install from out-of-tree build

When building out-of-tree, install fails since it tries to copy
mount.fuse binary from source directory.

Patch initially from Damien Thébault (SoftAtHome)

12 years agoAdd FALLOCATE operation
Anatol Pomozov [Mon, 23 Apr 2012 01:49:35 +0000 (18:49 -0700)]
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.

12 years agoFix the compile command in the examples
Miklos Szeredi [Wed, 16 May 2012 15:31:33 +0000 (17:31 +0200)]
Fix the compile command in the examples

Reported by Luciano Dalle Ore

12 years agoFix -pthread in fuse.pc
Miklos Szeredi [Wed, 16 May 2012 14:45:27 +0000 (16:45 +0200)]
Fix -pthread in fuse.pc

Linking to a library that uses threads requires the application to be linked
with -pthreads otherwise some pthread functions will be linked to stubs in
glibc.  So move -pthread from Libs.private to Libs in fuse.pc.

Reported by Werner Fink

12 years agoReleased 2.9.0 fuse_2_9_0
Miklos Szeredi [Fri, 20 Apr 2012 14:30:05 +0000 (16:30 +0200)]
Released 2.9.0

12 years agoAdd missing fuse_fs_flock to fuse_versionscript
Miklos Szeredi [Fri, 20 Apr 2012 12:17:39 +0000 (14:17 +0200)]
Add missing fuse_fs_flock to fuse_versionscript

12 years agouse flexible array in include/fuse_kernel.h
Miklos Szeredi [Fri, 20 Apr 2012 10:19:24 +0000 (12:19 +0200)]
use flexible array in include/fuse_kernel.h

Use the ISO C standard compliant form instead of the gcc extension in the
interface definition.

12 years agoUpdate NEWS
Miklos Szeredi [Fri, 20 Apr 2012 09:58:37 +0000 (11:58 +0200)]
Update NEWS

13 years agoAdd 'flag_utime_omit_ok' flag to fuse_operations
Miklos Szeredi [Tue, 10 Apr 2012 14:37:03 +0000 (16:37 +0200)]
Add 'flag_utime_omit_ok' flag to fuse_operations

If the filesystem sets this flag then ->utimens() will receive UTIME_OMIT and
UTIME_NOW values as specified in utimensat(2).

13 years agoCheck protocol version before sending notifications
Miklos Szeredi [Tue, 10 Apr 2012 14:01:00 +0000 (16:01 +0200)]
Check protocol version before sending notifications

Check protocol version before sending notifications and return -ENOSYS if a
particular notification is not supported.

13 years agotest improvements
Miklos Szeredi [Fri, 6 Apr 2012 09:47:16 +0000 (11:47 +0200)]
test improvements

13 years agoInterpret octal escape codes in options
Miklos Szeredi [Fri, 27 Jan 2012 15:42:13 +0000 (16:42 +0100)]
Interpret octal escape codes in options

Requested by Jan Engelhardt

13 years agoclean up man page
Miklos Szeredi [Thu, 26 Jan 2012 17:01:14 +0000 (18:01 +0100)]
clean up man page

13 years agoAdd doc/Makefile.am
Miklos Szeredi [Thu, 26 Jan 2012 16:44:35 +0000 (17:44 +0100)]
Add doc/Makefile.am

13 years agoAdd man pages for fusermount, mount.fuse and ulockmgr_server
Miklos Szeredi [Thu, 26 Jan 2012 14:01:56 +0000 (15:01 +0100)]
Add man pages for fusermount, mount.fuse and ulockmgr_server

Lifted from the Debian package.  The man pages were written by Daniel Baumann
and Bastien Roucaries

13 years agoRevert "Add mmap() and munmap() methods to low level API"
Miklos Szeredi [Tue, 24 Jan 2012 12:01:39 +0000 (13:01 +0100)]
Revert "Add mmap() and munmap() methods to low level API"

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

13 years agoDisable symbol versions on MacOSX
Anatol Pomozov [Fri, 6 Jan 2012 18:55:52 +0000 (10:55 -0800)]
Disable symbol versions on MacOSX

MacOSX uses MachO binary format that does not support symbols.

This change comes from fuse4x project (fuse implementation for macosx).

13 years agoRemove unnecessary mutex unlock at the end of multithreaded event loop
Miklos Szeredi [Mon, 2 Jan 2012 17:15:05 +0000 (18:15 +0100)]
Remove unnecessary mutex unlock at the end of multithreaded event loop

13 years agoFree request in fuse_reply_data()
Miklos Szeredi [Fri, 9 Dec 2011 15:07:55 +0000 (16:07 +0100)]
Free request in fuse_reply_data()

Fix memory leak caused by a missing fuse_request_free() in fuse_reply_data().

13 years agoDon't unhash name in FORGET
Miklos Szeredi [Fri, 9 Dec 2011 15:07:55 +0000 (16:07 +0100)]
Don't unhash name in FORGET

This resulted in ENOENT being returned for unlinked but still open files if the
kernel sent a FORGET request for the parent directory.

Discovered with fs_racer in LTP.

13 years agoFix hang in wait_on_path()
Miklos Szeredi [Fri, 9 Dec 2011 15:07:55 +0000 (16:07 +0100)]
Fix hang in wait_on_path()

Ville Silventoinen reported that fs_racer in LTP triggered a hang in
wait_on_path().  This bug was caused by try_get_path() not resetting "ticket" on
permanent failure.

13 years agoutimens availability check
Emmanuel Dreyfus [Thu, 8 Dec 2011 10:55:27 +0000 (10:55 +0000)]
utimens availability check

fusexmp uses utimens and takes that function for granted. It is part of
POSIX exended API set 2 and some systems do not have it yet. Attached
patch checks for utimens availability and returns ENOSYS if unavailable.

13 years agoFUSE_NODE_SLAB buildfix
Emmanuel Dreyfus [Thu, 8 Dec 2011 10:53:48 +0000 (10:53 +0000)]
FUSE_NODE_SLAB buildfix

When FUSE_NODE_SLAB is not defined, the build fails because of undefined
functions. Attached patch fixes the problem.

13 years agofuse: documentation update for forget
Nikolaus Rath [Wed, 7 Dec 2011 15:15:36 +0000 (10:15 -0500)]
fuse: documentation update for forget

Update documentation for forget and related methods

13 years agolibfuse: Notifying the kernel of deletion.
John Muir [Tue, 6 Dec 2011 20:56:34 +0000 (21:56 +0100)]
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>
13 years agoAdd mmap() and munmap() methods to low level API
Miklos Szeredi [Tue, 6 Dec 2011 17:06:18 +0000 (18:06 +0100)]
Add mmap() and munmap() methods to low level API

Currently this is only useful for CUSE.  Also update retrieve_reply()
method.

13 years agoAdd support for ioctl on directories
Miklos Szeredi [Mon, 5 Dec 2011 14:21:28 +0000 (15:21 +0100)]
Add support for ioctl on directories

Reported by Antonio SJ Musumeci

13 years agoMake lock argument of fuse_reply_lock const
Miklos Szeredi [Mon, 5 Dec 2011 12:31:42 +0000 (13:31 +0100)]
Make lock argument of fuse_reply_lock const

Low level API: lock argument of fuse_reply_lock should have a
'const' qualifier.

Reported by Shachar Sharon

13 years agoFix the following compile error
Miklos Szeredi [Thu, 17 Nov 2011 11:36:38 +0000 (12:36 +0100)]
Fix the following compile error

fusermount.c: In function 'clone_newns':
fusermount.c:315:2: warning: implicit declaration of function 'clone' [-Wimplicit-function-declaration]
fusermount.c:315:44: error: 'CLONE_NEWNS' undeclared (first use in this function)
fusermount.c:315:44: note: each undeclared identifier is reported only once for each function it appears in
fusermount.c:317:1: warning: control reaches end of non-void function [-Wreturn-type]

13 years agoReply with ENOMEM in case of failure to allocate request
Miklos Szeredi [Sun, 23 Oct 2011 08:07:20 +0000 (10:07 +0200)]
Reply with ENOMEM in case of failure to allocate request

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

13 years agoReplace daemon() function with fork()
Anatol Pomozov [Fri, 2 Sep 2011 23:26:09 +0000 (16:26 -0700)]
Replace daemon() function with fork()

daemon() is a BSD-ism. Although it is available on many platforms
it is not a standard function. Some platforms (e.g. MacOSX) deprecated
it.

It is safer just to use fork() function that is a part of POSIX.

13 years agoDon't ignore --disable-mtab
Miklos Szeredi [Wed, 31 Aug 2011 10:55:06 +0000 (12:55 +0200)]
Don't ignore --disable-mtab

If configured with --disable-mtab then don't call mount(8) from
libfuse to update the mtab.

Reported by: James Sierp

13 years agoadd lru for remember option
therealneworld@gmail.com [Wed, 24 Aug 2011 16:01:17 +0000 (18:01 +0200)]
add lru for remember option

Use LRU list for cleaning up the cache if the "remember=T" option was
given.

13 years agoAdd ->flock() operation to low and high level interfaces
Miklos Szeredi [Wed, 6 Jul 2011 10:12:01 +0000 (12:12 +0200)]
Add ->flock() operation to low and high level interfaces

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.

13 years agoutimens must not follow symlinks
Sebastian Pipping [Sat, 25 Jun 2011 17:14:29 +0000 (19:14 +0200)]
utimens must not follow symlinks

Make xmp_utimens of examples "fusexmp" and "fusexmp_fh" not follow
symlinks as other layers do that already.