CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/08/03 18:08:53 Modified files: lib/libfuse: fuse_new.3 Log message: Uncomment no-longer-dead Xr.
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/08/03 17:32:04 Modified files: lib/libfuse: Makefile Added files: lib/libfuse: fuse_get_context.3 Log message: Add man page for fuse_get_context(3).
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/07/20 06:05:08 Modified files: regress/lib/libfuse: fuse-mount.c fuse-null-check.c fuse-opt-add-arg.c fuse-opt-add-opt-escaped.c fuse-opt-add-opt.c fuse-opt-insert-arg.c fuse-opt-match.c fuse-opt-parse.c fuse-parse-cmdline.c Log message: Add missing RCS Id.
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/07/18 04:47:02 Modified files: sys/miscfs/fuse: fuse_vnops.c Log message: Replace VATTR_NULL() with memset(3) in fusefs_getattr(). VATTR_NULL() sets all members of struct vattr to VNOVAL (-1) instead of 0, which is what is appropriate here. The VATTR_NULL() macro is intended for initialising struct vattr when setting attributes. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/07/17 07:12:08 Modified files: regress/lib/libfuse: Makefile sys/miscfs/fuse: fuse_vfsops.c Added files: regress/lib/libfuse: fuse-mount.c fuse-null-check.c Log message: Don't send FBT_DESTROY if the FUSE connection is still PENDING. Also don't attempt to determine the size of the root inode. This is because we don't need to know the size of directories and FBT_GETATTR will also cause a deadlock if fuse_unmount(3) is called before the file system has a chance to process fbufs. Add corresponding regression test. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/07/17 07:04:31 Modified files: regress/lib/libfuse: fuse-parse-cmdline.c Log message: libfuse now supports -f command line option; uncomment test.
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/07/16 10:44:09 Modified files: sys/miscfs/fuse: fuse_vfsops.c fuse_vnops.c sys/uvm: uvm_vnode.c Log message: Insert the appropriate uvm_vnp_uncache(9) and uvm_vnp_setsize(9) kernel calls to ensure that the UVM cache for memory mapped files is up to date. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/07/16 07:10:53 Modified files: sys/miscfs/fuse: fuse_vnops.c fusefs.h lib/libfuse: fuse_new.3 fuse_ops.c Log message: Implement FBT_FSYNC, which is called on fsync(2) and fdatasync(2). Currently ignores the a_waitfor argument and always invokes the file system's fsync implementation synchronously. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/07/07 20:49:38 Added files: lib/libfuse: fuse_destroy.3 Log message: Add man page for fuse_destroy(3).
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/07/07 20:28:42 Modified files: lib/libfuse: Makefile fuse_main.3 Added files: lib/libfuse: fuse_chan_fd.3 fuse_daemonize.3 fuse_get_session.3 fuse_loop.3 fuse_mount.3 fuse_new.3 fuse_opt.3 fuse_parse_cmd_line.3 fuse_setup.3 fuse_teardown.3 fuse_version.3 Log message: Create separate man pages for each library function.
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/07/05 04:57:31 Modified files: lib/libfuse: fuse.c Log message: fuse_set_signal_handlers(3) and fuse_remove_signal_handlers(3) should not replace any existing signal handlers. This makes it possible for FUSE file systems to install their own signal handlers. Bug reported by Bill Zissimopoulos. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/07/05 04:29:36 Modified files: lib/libfuse: Makefile fuse_main.3 Added files: lib/libfuse: fuse_set_signal_handlers.3 Log message: Create new man page for fuse_set_signal_handlers(3) and fuse_remove_signal_handlers(3). ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/07/03 17:23:26 Modified files: lib/libfuse: fuse.c Log message: Remove residual debug statements.
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/06/27 07:58:22 Modified files: sys/miscfs/fuse: fuse_device.c Log message: Refactor to simplify - no functional change. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/06/25 06:03:53 Modified files: sys/miscfs/fuse: fuse_device.c fuse_vfsops.c fusefs.h Log message: Remove unused fbuf parameter from fuse_device_cleanup(). ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/06/21 08:53:36 Modified files: sys/miscfs/fuse: fuse_device.c fuse_lookup.c fusebuf.c fusefs.h Log message: Don't timeout on fb_queue(9). The current process will block indefinitely and cannot be interrupted or killed. This is consistent with how VFS system calls should behave. If the file system becomes unresponsive then the only sane solution is for the user to kill the file system daemon. Implementing the equivalent of nfs -osoft or -ointr to either timeout or allow the blocking FUSE operation to be interrupted can be considered in a future patch. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/06/20 04:57:39 Modified files: sys/miscfs/fuse: fuse_vnops.c Log message: Fix formatting.
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/06/19 07:01:34 Modified files: lib/libfuse: fuse.c fuse_private.h sys/miscfs/fuse: fuse_vfsops.c fuse_vnops.c fusefs.h sys/sys: mount.h Log message: Changes the default mount behaviour so only the user that mounts the file system can access it unless the allow_other mount options is specified. The allow_other mount option makes the file system available to other users just like any other mounted file system. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/06/19 05:27:54 Modified files: lib/libfuse: fuse.c sys/sys: fusebuf.h sys/miscfs/fuse: fusebuf.c Log message: Send the calling thread id, effective uid and gid, and umask to the FUSE file system. fuse_get_context(3) will now return the correct values. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/06/18 06:04:20 Modified files: sys/miscfs/fuse: fuse_vnops.c Log message: Allow write for non-regular files when file system is mounted read-only. Don't ask file system to check file access; always behave as if default_permissions option was specified. (this may change in a later commit) ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/06/18 05:24:15 Modified files: sys/miscfs/fuse: fuse_vnops.c Log message: chmod(2) should return EFTYPE if the effective user ID is not the super-user, the mode includes the sticky bit (S_ISVTX), and path does not refer to a directory. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/06/08 17:43:40 Modified files: lib/libfuse: fuse_ops.c Log message: Minor cleanup in ifuse_ops_setattr. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/06/07 16:28:11 Modified files: lib/libfuse: fuse_private.h Log message: Prevent ggc3 error: redefinition of `fuse_dirh_t' OK millert@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/05/23 07:09:37 Modified files: sys/miscfs/fuse: fusebuf.c Log message: Change wait text when waiting for FUSE file system daemon to respond. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/05/22 06:52:14 Modified files: sys/miscfs/fuse: fuse_lookup.c lib/libfuse: fuse.c fuse_ops.c fuse_private.h Log message: Implement support for libfuse use_ino option. This returns the file system's ino for VOP_GETATTR(9) and VOP_READDIR(9) rather than the internally generated fuse ino. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/05/21 07:06:00 Modified files: sys/miscfs/fuse: fuse_vnops.c Log message: The flush operation is optional so don't return ENOSYS if the FUSE file system doesn't implement it. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/05/21 05:47:46 Modified files: lib/libfuse: fuse_ops.c fuse_subr.c Log message: Reformat debug output to one line per opcode to make it easier to interpret. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/05/19 21:06:50 Modified files: sys/miscfs/fuse: fuse_vfsops.c Log message: Prevent race condition if file system is accessed before it is initialised. Rather than failing, requests are now queued. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/05/19 20:51:26 Modified files: lib/libfuse: fuse_ops.c sys/miscfs/fuse: fuse_vnops.c fusefs.h Log message: Implement FBT_FLUSH. This is sent whenever a file descriptor is closed with VOP_CLOSE(9). The associated FUSE file handle is however not closed at this time and is instead closed on VOP_RELEASE(9) because that's the only time it's guaranteed to be no longer used. Directory handles are now only closed on VOP_RELEASE(9) for the same reason. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/05/17 05:25:11 Modified files: sys/miscfs/fuse: fuse_device.c fuse_vfsops.c fuse_vnops.c fusebuf.c Log message: Pass size argument to free(9). ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/05/16 07:09:17 Modified files: sys/miscfs/fuse: fuse_vnops.c lib/libfuse: fuse.h fuse_ops.c fuse_private.h Log message: libfuse should not maintain state for FBT_READDIR. If a directory is opened multiple times (either from the same process or different processes) then FUSE will not reliably return the directory entries to both file descriptors. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/05/15 05:57:32 Modified files: lib/libfuse: fuse.c fuse_ops.c fuse_opt.c sys/miscfs/fuse: fuse_device.c fuse_vfsops.c Log message: Use memset(3) instead of bzero(3) for consistency and as per POSIX recommendation.
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2018/01/22 06:16:48 Modified files: sys/miscfs/fuse: fuse_device.c Log message: Use the proper address space when using a kernel that supports Supervisor Mode Access Prevention (SMAP) compiled with FUSE_DEBUG. While here, add some sanity check to the debug function fuse_dump_buff. Thanks to Thomas Jeunet. OK mpi@, helg@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2017/12/18 07:20:23 Modified files: lib/libfuse: fuse.c Log message: Add call to fuse_remove_signal_handlers(3) in fuse_teardown(3) to do the opposite of fuse_setup(3). ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2017/12/18 04:41:41 Modified files: lib/libfuse: fuse.c fuse_private.h Log message: Refactor libfuse option processing to better support options in the future. Immediate benefits are that gid, uid and umask are now supported and max_read is now honoured for all file systems. Mounting read_only is now possible but requires more thorough testing. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2017/12/15 05:08:22 Modified files: lib/libfuse: fuse.c Log message: Fix formatting of libfuse version info. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2017/12/14 07:50:02 Modified files: lib/libfuse: fuse.c Log message: Add a missing call to fuse_set_signal_handlers(3) in fuse_setup(3) so that any file systems that call fuse_setup(3) or fuse_main(3) trap signals gracefully. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2017/12/14 06:11:37 Modified files: lib/libfuse: fuse.c Log message: Free FUSE channel if fuse_new(3) fails in fuse_setup(3). ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2017/12/13 05:30:18 Modified files: lib/libfuse: Makefile debug.c debug.h fuse.c Log message: Add support for the -d (-o debug) option to libfuse. Currently works for FUSE file systems that call fuse_parse_cmdline(3), fuse_main(3) or fuse_setup(3). ok mpi@, jca@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2017/12/13 05:23:48 Modified files: lib/libfuse: fuse_opt.c regress/lib/libfuse: fuse-opt-parse.c Log message: If the list of templates 'o' passed to fuse_opt_parse(3) is NULL then the processing function should be called in the same way as if no match was found. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2017/12/11 05:38:54 Modified files: lib/libfuse: fuse_opt.c regress/lib/libfuse: fuse-opt-parse.c Log message: sscanf(3) is now used to parse templates that contain format specifiers (e.g. %u, %o) other than %s. This aligns libfuse with the Linux reference implementation. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2017/12/11 05:31:00 Modified files: lib/libfuse: fuse_opt.c Log message: Update to fuse_opt_parse(3) so that all option templates are now matched for the supplied option. This allows the following templates to be supplied to set multiple members of a struct at the same time. e.g. #define FUSE_LIB_OPT(t, p, v) { t, offsetof(struct fuse_config, p), v } static const struct fuse_opt fuse_lib_opts[] = { FUSE_LIB_OPT("gid=", set_gid, 1), FUSE_LIB_OPT("gid=%u",gid, 0), FUSE_OPT_END }; If "-ogid=1000" is passed to fuse_opt_parse(3) it will set both: fuse_config.set_gid=1 fuse_config.gid=1000 ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2017/12/11 05:01:55 Modified files: lib/libfuse: fuse_opt.c regress/lib/libfuse: fuse-opt-match.c Log message: The fuse_opt_match(3) library function does not match options correctly. libfuse supports option templates of the following form that can be used to automatically parse arguments supplied on the command line. "-p " argument that takes an option e.g -p 22 or -p22 "-p %x" argument that takes an option parsed like sscanf(3) "cache=yes" matches -ocache=yes or -o cache=yes "cache=%s" matches -ocache= or -o cache= "cache="matches same as above but value is passed to option proc "noatime" matches -onoatime or -o atime For example, it does not match options of the form "-p 22" or "cache=yes" to the corresponding templates "-p " and "cache=yes". This patch fixes that and updates the regression tests accordingly. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2017/11/30 04:29:03 Modified files: lib/libfuse: fuse_ops.c sys/miscfs/fuse: fuse_vnops.c sys/sys: fusebuf.h share/man/man9 : fb_setup.9 Log message: vn_open(9) does not pass the open(2) flags to VOP_CREATE(9) so we can't support FBT_CREATE. Fall back to FBT_MKNOD + FBT_OPEN so that a valid sequence of FUSE messages is sent to the file system when creating files. input from mpi@, otto@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2017/11/28 04:17:01 Modified files: share/man/man9 : VOP_LOOKUP.9 Log message: Correct the description for VOP_RENAME to reflect that tvp is unlocked on exit. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2017/11/27 15:55:17 Modified files: sys/miscfs/fuse: fuse_vnops.c Log message: Change fusefs_link to return EPERM if the source file is a directory. Now aligns with link(2) man page and ffs regress tests. ok phessler@, jca@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2017/11/27 06:15:56 Modified files: sys/miscfs/fuse: fuse_lookup.c Log message: Check access before creating a file or directory. input and ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2017/11/27 05:54:13 Modified files: sys/miscfs/fuse: fuse_vnops.c Log message: When renaming a file, unlock the target vnode if the target file exists. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2017/11/26 08:17:17 Modified files: lib/libfuse: fuse.c fuse_private.h Log message: Add support for -f option to libfuse. This keeps the FUSE file system running in the foreground. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2017/11/17 08:56:12 Modified files: lib/libfuse: fuse.c Log message: Implement safe signal handling and handle unmount failure gracefully. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2017/11/17 08:45:17 Modified files: lib/libfuse: fuse.h fuse_ops.c sys/miscfs/fuse: fuse_vnops.c Log message: Fixes the following bugs when getcwd(3) is used on a fuse file system Endless loop if directory nested more than one level from root of file system Current directory not found if the parent directory contains more children than will fit in the buffer passed to VOP_READDIR(9) Open and close directory in fusefs_readdir if dir is not already open. Now behaves as if readdir_ino option was passed to fuse so that directories in path have a valid ino. ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2017/11/16 06:23:13 Modified files: regress/lib/libfuse: Makefile Added files: regress/lib/libfuse: fuse-opt-parse.c fuse-parse-cmdline.c Log message: Add regress tests for fuse_opt_parse() and fuse_parse_cmdline() ok mpi@
CVS: cvs.openbsd.org: src
CVSROOT:/cvs Module name:src Changes by: h...@cvs.openbsd.org2017/11/16 05:56:58 Modified files: lib/libfuse: fuse_opt.c Log message: Add support for: multiple options after -o. arguments that require options e.g. -p 22 %s, %lu, %u option templates ok mpi@