summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Released 2.9.7.fuse-2.9.7fuse-2_9_bugfixNikolaus Rath2016-06-204-4/+10
|
* libfuse/fuse_daemonize: wait until daemon child process is ready (#55)Hendrik Brueckner2016-06-202-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mounting a FUSE file system remotely using SSH in combination with pseudo-terminal allocation (-t), results in "Transport endpoint is not connected" errors when trying to access the file system contents. For example: # ssh -t root@localhost "cmsfs-fuse /dev/disk/by-path/ccw-0.0.0190 /CMSFS" Connection to localhost closed. # ls /CMSFS ls: cannot access '/CMSFS': Transport endpoint is not connected The cmsfs-fuse main program (which can also be any other FUSE file system) calls into the fuse_main() libfuse library function. The fuse_main() function later calls fuse_daemonize() to fork the daemon process to handle the FUSE file system I/O. The fuse_daemonize() function calls fork() as usual. The child proceeds with setsid() and then redirecting its file descriptors to /dev/null etc. The parent process, simply exits. The child's functions and the parent's exit creates a subtle race. This is seen with an SSH connection. The SSH command above calls cmsfs-fuse on an allocated pseudo-terminal device (-t option). If the parent exits, SSH receives the command completion and closes the connection, that means, it closes the master side of the pseudo-terminal. This causes a HUP signal being sent to the process group on the pseudo-terminal. At this point in time, the child might not have completed the setsid() call and, hence, becomes terminated. Note that fuse daemon sets up its signal handlers after fuse_daemonize() has completed. Even if the child has the chance to disassociate from its parent process group to become it's own process group with setsid(), the child still has the pseudo-terminal opened as stdin, stdout, and stderr. So the pseudo-terminal still behave as controlling terminal and might cause a SIGHUP at closing the the master side. To solve the problem, the parent has to wait until the child (the fuse daemon process) has completed its processing, that means, has become its own process group with setsid() and closed any file descriptors pointing to the pseudo-terminal. Closes: #27 Reported-by: Ofer Baruch <oferba@il.ibm.com> Reviewed-by: Gerald Schaefer <gerald.schaefer@de.ibm.com> Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
* libfuse: pass security context options to kernelDalvik Khertel2016-06-202-0/+9
| | | | | | | | | | | 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. Closes: #36
* Fix ambigious conditionNikolaus Rath2016-06-051-1/+1
| | | | Fixes #42.
* Released 2.9.6fuse-2.9.6Nikolaus Rath2016-04-234-2/+9
|
* Fix description of bug #15.Nikolaus Rath2016-02-021-9/+19
|
* Document bug #15.Nikolaus Rath2016-02-011-2/+12
|
* Include documentation in tarball.Nikolaus Rath2016-01-283-2/+6
|
* Remove "credits" section, we now have an AUTHORS file.Nikolaus Rath2016-01-281-12/+0
|
* Released 2.9.5fuse_2_9_5Nikolaus Rath2016-01-142-3/+3
|
* Mention new maintainer in Changelog.Nikolaus Rath2016-01-141-1/+5
|
* Changed Changelog formatNikolaus Rath2016-01-141-38/+24
| | | | | | | | | Up to now, the Changelog has essentially been a (manually maintained) copy of the git commit history. This doesn't seem to have any point other than following the GNU coding standards. I believe it's much better to use the Changelog to summarize the release-to-release changes that are most important for users, so this is what we'll do from now on.
* Removed placeholder README file and switch automake to foreign flavor.Nikolaus Rath2016-01-142-4/+1
| | | | | | The GNU flavor merely requires to existence of some files (including README, but we prefer README.md), so there seems to be little point in using it.
* Removed hopelessly outdated files.Nikolaus Rath2016-01-143-427/+1
|
* Enable subdir-objects automake optionNikolaus Rath2016-01-142-0/+2
| | | | This is recommended for forward-compatibility.
* Update makeconf.shNikolaus Rath2016-01-141-26/+7
| | | | | | | | | Describe why manual copying of config.rpath is necessary, and fail with a more helpful message if it can't be found. Remove code for systems without autoreconf - it's apparently not used by anyone since it has been broken for quite some time (there is no `kernel` directory anymore).
* Update maintainer and contributor listNikolaus Rath2016-01-141-6/+49
|
* Extend write_buf documentationNikolaus Rath2016-01-141-0/+5
|
* Initialize padding to zero.Nikolaus Rath2016-01-141-0/+1
| | | | This should prevent some valgrind warnings.
* Migrated README to README.md for Markdown rendering on GitHub.Nikolaus Rath2015-12-202-379/+100
|
* libfuse: fix warning mount.c:receive_fd()Miklos Szeredi2015-08-122-1/+6
| | | | Reported by Albert Berger
* libfuse: fix possible memory leakMiklos Szeredi2015-06-292-1/+5
| | | | Reported by Jose R. Guzman
* Released 2.9.4fuse_2_9_4Miklos Szeredi2015-05-223-2/+6
|
* libfuse: fix exec environment for mount and umountMiklos Szeredi2015-05-222-6/+22
| | | | Found by Tavis Ormandy (CVE-2015-3202).
* libfuse: fix fuse_remove_signal_handlers()Miklos Szeredi2015-02-262-11/+16
| | | | | | to properly restore the default signal handler. Reported by: Chris Johnson <johnsocg@gmail.com>
* libfuse: document deadlock avoidance for fuse_notify_inval_entry()Miklos Szeredi2014-07-222-0/+11
| | | | | | and fuse_notify_delete() Reported by Han-Wen Nienhuys
* Initilaize stat buffer passed to ->getattr() and ->fgetattr()Miklos Szeredi2014-07-222-0/+7
| | | | | | to zero in all cases. Reported by Daniel Iwan.
* Advertize the existence of some "configure" env vars.Fabrice Bauzac2014-07-221-0/+3
| | | | | Advertize the existence of env vars MOUNT_FUSE_PATH, UDEV_RULES_PATH and INIT_D_PATH in the execution of ./configure.
* libfuse: highlevel API: fix directory file handle passed to ioctl() methodMiklos Szeredi2014-07-213-2/+16
| | | | Reported by Eric Biggers
* fusermount, libfuse: send value as unsigned in "user_id=" and "group_id="Miklos Szeredi2014-07-213-3/+10
| | | | | ...options. Uids/gids larger than 2147483647 would result in EINVAL when mounting the filesystem. This also needs a fix in the kernel.
* Add missing includesDaniel Thau2013-08-265-0/+9
| | | | This allows compiling fuse with musl.
* Released 2.9.3fuse_2_9_3Miklos Szeredi2013-07-013-2/+6
|
* libfuse: don't close fd if it's -1Miklos Szeredi2013-07-011-1/+4
| | | | This prevents a valgrind warning.
* libfuse: fix multiple close of device fdMiklos Szeredi2013-07-016-11/+34
| | | | | | | | | | | | - 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
* libfuse: fix thread cancel raceMiklos Szeredi2013-03-192-0/+8
| | | | | | | | Exiting a worker my race with cancelling that same worker. This caused a segmenation fault. Reported and tested by Anatol Pomozov
* Add "nopath" to help.Miklos Szeredi2013-02-181-0/+1
|
* libfuse: rename ./configure.in to ./configure.acAnatol Pomozov2013-02-042-0/+3
| | | | | | Next version of automake (1.14) removes support for the deprecated filename http://lists.gnu.org/archive/html/autotools-announce/2013-01/msg00000.html
* libfuse: Use AC_CONFIG_HEADERS instead of AM_CONFIG_HEADERAnatol Pomozov2013-02-042-1/+4
| | | | | AM_CONFIG_HEADER has been deprecated for years and autotools 1.13 removes this macros at all.
* libfuse: configure: detect new util-linuxMiklos Szeredi2013-02-042-2/+8
| | | | | | | 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.
* libfuse: fix the 'remember' optionMadan Valluri2013-02-042-0/+8
| | | | | | | | | | | | 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(+)
* libfuse: fix crash in unlock_path()Ratna_Bolla@dell.com2013-02-042-0/+6
| | | | | | | | | | | | 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
* Released 2.9.2fuse_2_9_2Miklos Szeredi2012-10-013-2/+7
|
* Fix deadlock in libfuseMiklos Szeredi2012-10-012-118/+173
| | | | | | | Running "svn update" on a fuse filesystem could deadlock because of a bug in the way the paths are locked. Reported by Kazuaki Anami
* Fix missing config.h in buffer.cMiklos Szeredi2012-08-244-0/+7
| | | | | | | | | | | | | 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
* Zero out node when allocating from a slab.Miklos Szeredi2012-08-141-10/+4
| | | | Fix compile warning when not using node slab.
* Fix "fuse internal error: node NNN not found"Miklos Szeredi2012-08-142-4/+20
| | | | | | | | | | 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
* Fix linking against GNU libiconvNatanael Copa2012-08-132-1/+5
| | | | | | Use quotation marks when assigning shell variable. This broke by 384496dd02cfd9a74b95d62ce0d23a31a7af3730, most likely by mistake.
* Released 2.9.1fuse_3_0_startfuse_2_9_1Miklos Szeredi2012-07-193-2/+6
|
* Fix crash caused by freeing a stack addressMiklos Szeredi2012-07-192-1/+6
| | | | | | | | 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
* Add fallocate to NEWSMiklos Szeredi2012-07-192-1/+4
|