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.
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.
Miklos Szeredi [Tue, 19 Mar 2013 16:33:46 +0000 (17:33 +0100)]
Merge branch 'fuse_2_9_bugfix'
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
Miklos Szeredi [Fri, 22 Feb 2013 13:30:22 +0000 (14:30 +0100)]
remove real fuse_main() symbol
Miklos Szeredi [Fri, 22 Feb 2013 13:26:20 +0000 (14:26 +0100)]
clean fuse_chan_receive from versionscript
Miklos Szeredi [Thu, 21 Feb 2013 08:43:44 +0000 (09:43 +0100)]
fix fi->fh format strings
Miklos Szeredi [Wed, 20 Feb 2013 20:58:41 +0000 (21:58 +0100)]
Fix nodeid format strings
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'.
Miklos Szeredi [Wed, 20 Feb 2013 14:59:08 +0000 (15:59 +0100)]
cuse: clean includes
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
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.
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
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
Miklos Szeredi [Mon, 18 Feb 2013 13:43:08 +0000 (14:43 +0100)]
Add "nopath" to help.
Miklos Szeredi [Fri, 8 Feb 2013 07:25:10 +0000 (08:25 +0100)]
remove <utime.h> include from <fuse.h>
Miklos Szeredi [Fri, 8 Feb 2013 07:15:55 +0000 (08:15 +0100)]
libfuse: remove struct fuse_cmd
Miklos Szeredi [Fri, 8 Feb 2013 07:04:50 +0000 (08:04 +0100)]
update .gitignore
Miklos Szeredi [Fri, 8 Feb 2013 07:03:02 +0000 (08:03 +0100)]
libfuse: 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()
Miklos Szeredi [Fri, 8 Feb 2013 07:03:02 +0000 (08:03 +0100)]
libfuse: remove deprecated fuse_operations.getdir()
Miklos Szeredi [Fri, 8 Feb 2013 07:03:02 +0000 (08:03 +0100)]
libfuse: remove deprecated fuse_lowlevel_is_lib_option()
Miklos Szeredi [Fri, 8 Feb 2013 07:03:02 +0000 (08:03 +0100)]
libfuse: remove deprecated fuse_exited()
Miklos Szeredi [Fri, 8 Feb 2013 07:03:02 +0000 (08:03 +0100)]
libfuse: remove deprecated fuse_setup(), fuse_teardown()
Miklos Szeredi [Fri, 8 Feb 2013 07:03:02 +0000 (08:03 +0100)]
libfuse: remove deprecated fuse_read_cmd(), fuse_process_cmd()
Miklos Szeredi [Fri, 8 Feb 2013 07:03:01 +0000 (08:03 +0100)]
libfuse: remove deprecated fuse_loop_mt_proc()
Miklos Szeredi [Fri, 8 Feb 2013 07:03:01 +0000 (08:03 +0100)]
libfuse: remove deprecated fuse_set_getcontext_func()
Miklos Szeredi [Fri, 8 Feb 2013 07:03:01 +0000 (08:03 +0100)]
libfuse: remove deprecated fuse_invalidate()
Miklos Szeredi [Fri, 8 Feb 2013 07:03:01 +0000 (08:03 +0100)]
libfuse: remove deprecated fuse_is_lib_option()
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.
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).
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
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.
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>
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.
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>
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.
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.
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
Miklos Szeredi [Tue, 5 Feb 2013 12:20:25 +0000 (13:20 +0100)]
Create doc/.gitignore
Miklos Szeredi [Mon, 4 Feb 2013 17:32:38 +0000 (18:32 +0100)]
Merge branch 'fuse_2_9_bugfix'
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
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.
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.
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(+)
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
Miklos Szeredi [Mon, 1 Oct 2012 17:56:49 +0000 (19:56 +0200)]
Released 2.9.2
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
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
Miklos Szeredi [Tue, 14 Aug 2012 12:03:10 +0000 (14:03 +0200)]
Merge branch 'fuse_2_9_bugfix'
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.
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
Miklos Szeredi [Mon, 13 Aug 2012 10:59:29 +0000 (12:59 +0200)]
Merge branch 'fuse_2_9_bugfix'
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.
Miklos Szeredi [Fri, 20 Jul 2012 07:51:24 +0000 (09:51 +0200)]
Move flags to the front of struct fuse_operations
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.
Miklos Szeredi [Thu, 19 Jul 2012 17:03:53 +0000 (19:03 +0200)]
Remove include/old directory
Miklos Szeredi [Thu, 19 Jul 2012 17:02:42 +0000 (19:02 +0200)]
Remove compat functions
Miklos Szeredi [Thu, 19 Jul 2012 16:47:51 +0000 (18:47 +0200)]
Remove old symbol versions
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.
Miklos Szeredi [Thu, 19 Jul 2012 13:22:38 +0000 (15:22 +0200)]
Released 2.9.1
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
Miklos Szeredi [Thu, 19 Jul 2012 13:02:02 +0000 (15:02 +0200)]
Add fallocate to NEWS
Miklos Szeredi [Wed, 4 Jul 2012 10:19:29 +0000 (12:19 +0200)]
libfuse: mark some data constant
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.
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)
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.
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
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
Miklos Szeredi [Fri, 20 Apr 2012 14:30:05 +0000 (16:30 +0200)]
Released 2.9.0
Miklos Szeredi [Fri, 20 Apr 2012 12:17:39 +0000 (14:17 +0200)]
Add missing fuse_fs_flock to fuse_versionscript
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.
Miklos Szeredi [Fri, 20 Apr 2012 09:58:37 +0000 (11:58 +0200)]
Update NEWS
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).
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.
Miklos Szeredi [Fri, 6 Apr 2012 09:47:16 +0000 (11:47 +0200)]
test improvements
Miklos Szeredi [Fri, 27 Jan 2012 15:42:13 +0000 (16:42 +0100)]
Interpret octal escape codes in options
Requested by Jan Engelhardt
Miklos Szeredi [Thu, 26 Jan 2012 17:01:14 +0000 (18:01 +0100)]
clean up man page
Miklos Szeredi [Thu, 26 Jan 2012 16:44:35 +0000 (17:44 +0100)]
Add doc/Makefile.am
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
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().
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).
Miklos Szeredi [Mon, 2 Jan 2012 17:15:05 +0000 (18:15 +0100)]
Remove unnecessary mutex unlock at the end of multithreaded event loop
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().
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.
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.
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.
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.
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
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>
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.
Miklos Szeredi [Mon, 5 Dec 2011 14:21:28 +0000 (15:21 +0100)]
Add support for ioctl on directories
Reported by Antonio SJ Musumeci
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
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]
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
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.
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
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.
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.
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.