History log of /src/lib/librefuse |
Revision | Date | Author | Comments |
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.16 | 22-Jan-2022 |
pho | Correct the wrong prototype of fuse_daemonize(3) while retaining ABI compatibility
|
1.15 | 22-Jan-2022 |
pho | Increase the warning level to spot more mistakes
|
1.14 | 22-Jan-2022 |
pho | lib/librefuse: Implement FUSE session API and its signal handling functionality
|
1.13 | 22-Jan-2022 |
pho | lib/librefuse: Implement logging API appeared on FUSE 3.7
|
1.12 | 04-Dec-2021 |
pho | librefuse: Preparation of a proper API versioning; no more #ifdef woes in user code
The goal is to fully support FUSE API version 3.0 while maintaining API/ABI compatibility with code written for 2.6 (or even older).
* <fuse.h> now emits a compiler warning if it's included without defining FUSE_USE_VERSION. It had been silently defaulted to the latest supported version prior to this change. This is permissive compared to the original FUSE, as it emits an error instead.
* <fuse.h> now emits a warning if FUSE_USE_VERSION is higher than what can be provided.
* Added a macro FUSE_MAKE_VERSION(maj, min). It was missing from librefuse <fuse.h>.
No actual API updates have been made (yet).
|
1.11 | 20-Nov-2016 |
pho | fuse_lowlevel.h: new file, currently only contains fuse_parse_cmdline(3) and struct fuse_cmdline_opts
|
1.10 | 23-Jan-2016 |
christos | branches: 1.10.2; Define _KERNTYPES for things that need it.
|
1.9 | 21-Mar-2012 |
matt | These directories default to WARNS?=5
|
1.8 | 05-Nov-2007 |
pooka | branches: 1.8.28; Header cleanup: don't need defs.h to do a few includes for us. Also, use #include <> for global headers instead of #include "".
|
1.7 | 21-Oct-2007 |
pooka | Get rid of MULTITHREADED_REFUSE for context queries. We can simply use the pthread codepaths always.
|
1.6 | 18-Jul-2007 |
pooka | branches: 1.6.4; 1.6.6; get rid of DBG=
|
1.5 | 28-May-2007 |
tls | Add new Makefile knob, USE_FORT, which extends USE_SSP by turning on the FORTIFY_SOURCE feature of libssp, thus checking the size of arguments to various string and memory copy and set functions (as well as a few system calls and other miscellany) where known at function entry. RedHat has evidently built all "core system packages" with this option for some time.
This option should be used at the top of Makefiles (or Makefile.inc where this is used for subdirectories) but after any setting of LIB.
This is only useful for userland code, and cannot be used in libc or in any code which includes the libc internals, because it overrides certain libc functions with macros. Some effort has been made to make USE_FORT=yes work correctly for a full-system build by having the bsd.sys.mk logic disable the feature where it should not be used (libc, libssp iteself, the kernel) but no attempt has been made to build the entire system with USE_FORT and doing so will doubtless expose numerous bugs and misfeatures.
Adjust the system build so that all programs and libraries that are setuid, directly handle network data (including serial comm data), perform authentication, or appear likely to have (or have a history of having) data-driven bugs (e.g. file(1)) are built with USE_FORT=yes by default, with the exception of libc, which cannot use USE_FORT and thus uses only USE_SSP by default. Tested on i386 with no ill results; USE_FORT=no per-directory or in a system build will disable if desired.
|
1.4 | 12-Apr-2007 |
pooka | Hide struct puffs_usermount from the rest of the world and provide accessors for interesting data in it. Namely, you can now get pu->pu_privdata with puffs_getspecific(), pu->pu_pn_root with puffs_set/getroot() and pu->pu_maxreqlen with puffs_getmaxreqlen().
|
1.3 | 28-Feb-2007 |
xtraeme | * Move fuse_opt* defs and prototypes into fuse_opt.h. * Move fuse_opt* funcs from refuse.c into refuse_opt.c.
Implement fuse_opt_parse() and fuse_opt_match(). And make the other functions just dummy, always returning 0 (I added debugging printfs to see what the application is trying to do).
For now there are two things that do not work in fuse_opt:
* options accepting arguments, i.e -otimeout=%u or -ofile=%s. * options without arguments are not enabled, just parsed.
At least now curlftpfs works, even with verbose mode! :-)
Ok'ed by pooka.
|
1.2 | 16-Feb-2007 |
pooka | LIBDPLIBS on puffs
|
1.1 | 11-Feb-2007 |
agc | Add an implementation of the file system in userspace functionality, based on top of libpuffs. This version is still barebones and incomplete, but will benefit from others working on it, rather than just me.
The option code has still to be implemented, but this gets far enough to run hellofs (from the fuse web page):
% priv ./hellofs ~/hellofs/mnt & % l ~/hellofs/mnt total 2 drwxr-xr-x 2 root wheel 0 Jan 1 1970 . drwxr-xr-x 4 agc agc 512 Feb 9 18:05 .. -r--r--r-- 1 root wheel 13 Jan 1 1970 hello % cat ~/hellofs/mnt/hello Hello World! % df ~/hellofs/mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/dk0 28101396 18946682 7749646 70% / kernfs 1 1 0 100% /kern procfs 4 4 0 100% /proc ptyfs 1 1 0 100% /dev/pts puffs:refuse:hellofs 28101396 18946682 7749646 70% /home/agc/hellofs/mnt % mount -v -v ... mount: mount_puffs not found for /home/agc/hellofs/mnt puffs:refuse:hellofs on /home/agc/hellofs/mnt type puffs (nosuid, nodev, fsid: 0xcb01/0x6acb, reads: sync 0 async 0, writes: sync 0 async 0) %
This code is not enabled by default. Yet.
|
1.6.6.2 | 18-Jul-2007 |
pooka | get rid of DBG=
|
1.6.6.1 | 18-Jul-2007 |
pooka | file Makefile was added on branch matt-mips64 on 2007-07-18 22:39:00 +0000
|
1.6.4.1 | 06-Nov-2007 |
matt | sync with HEAD
|
1.8.28.1 | 17-Apr-2012 |
yamt | sync with head
|
1.10.2.1 | 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.8 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.7 | 22-Jan-2022 |
pho | Increase the warning level to spot more mistakes
|
1.6 | 22-Jan-2022 |
pho | lib/librefuse: Add stub functions for FUSE polling API
|
1.5 | 22-Jan-2022 |
pho | lib/librefuse: Implement data buffer API appeared on FUSE 2.9
|
1.4 | 16-Nov-2016 |
pho | Major rework of fuse_opt_parse(3) so that it supports all the functionality of the original function
|
1.3 | 03-May-2007 |
agc | branches: 1.3.58; Implement fuse_setup(), and fuse_teardown() - necessary for the python bindings for refuse.
|
1.2 | 11-Feb-2007 |
pooka | hash out a bit further
|
1.1 | 11-Feb-2007 |
agc | Add an implementation of the file system in userspace functionality, based on top of libpuffs. This version is still barebones and incomplete, but will benefit from others working on it, rather than just me.
The option code has still to be implemented, but this gets far enough to run hellofs (from the fuse web page):
% priv ./hellofs ~/hellofs/mnt & % l ~/hellofs/mnt total 2 drwxr-xr-x 2 root wheel 0 Jan 1 1970 . drwxr-xr-x 4 agc agc 512 Feb 9 18:05 .. -r--r--r-- 1 root wheel 13 Jan 1 1970 hello % cat ~/hellofs/mnt/hello Hello World! % df ~/hellofs/mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/dk0 28101396 18946682 7749646 70% / kernfs 1 1 0 100% /kern procfs 4 4 0 100% /proc ptyfs 1 1 0 100% /dev/pts puffs:refuse:hellofs 28101396 18946682 7749646 70% /home/agc/hellofs/mnt % mount -v -v ... mount: mount_puffs not found for /home/agc/hellofs/mnt puffs:refuse:hellofs on /home/agc/hellofs/mnt type puffs (nosuid, nodev, fsid: 0xcb01/0x6acb, reads: sync 0 async 0, writes: sync 0 async 0) %
This code is not enabled by default. Yet.
|
1.3.58.1 | 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.1 | 03-Apr-2013 |
agc | branches: 1.1.2; file Version.map was initially added on branch agc-symver.
|
1.1.2.1 | 03-Apr-2013 |
agc | Add symbol versioning information for the following libraries:
libbluetooth libbsdmalloc libexecinfo libform libintl libipsec libkvm liblwres libnpf libp2k libpci libperfuse libppath libprop libpuffs librefuse librpcsvc librt librumpclient librumphijack librumpuser libukfs libusbhid libwrap
|
1.3 | 05-Nov-2007 |
pooka | Header cleanup: don't need defs.h to do a few includes for us. Also, use #include <> for global headers instead of #include "".
|
1.2 | 16-May-2007 |
christos | branches: 1.2.4; - Always check strdup return. For now we are lazy and bail instead of cleaning up. - Use malloc and free instead of macros, delete macros. - Merge the two copies of deep copy and free args that were slightly buggy into one and use that one.
XXX: Lots of ints should be size_t. XXX: Bailing on error is not a good thing for a library. XXX: Defs.h should be eliminated completely. Not all files need all the headers.
|
1.1 | 11-Feb-2007 |
agc | Add an implementation of the file system in userspace functionality, based on top of libpuffs. This version is still barebones and incomplete, but will benefit from others working on it, rather than just me.
The option code has still to be implemented, but this gets far enough to run hellofs (from the fuse web page):
% priv ./hellofs ~/hellofs/mnt & % l ~/hellofs/mnt total 2 drwxr-xr-x 2 root wheel 0 Jan 1 1970 . drwxr-xr-x 4 agc agc 512 Feb 9 18:05 .. -r--r--r-- 1 root wheel 13 Jan 1 1970 hello % cat ~/hellofs/mnt/hello Hello World! % df ~/hellofs/mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/dk0 28101396 18946682 7749646 70% / kernfs 1 1 0 100% /kern procfs 4 4 0 100% /proc ptyfs 1 1 0 100% /dev/pts puffs:refuse:hellofs 28101396 18946682 7749646 70% /home/agc/hellofs/mnt % mount -v -v ... mount: mount_puffs not found for /home/agc/hellofs/mnt puffs:refuse:hellofs on /home/agc/hellofs/mnt type puffs (nosuid, nodev, fsid: 0xcb01/0x6acb, reads: sync 0 async 0, writes: sync 0 async 0) %
This code is not enabled by default. Yet.
|
1.2.4.1 | 06-Nov-2007 |
matt | sync with HEAD
|
1.36 | 26-Jan-2025 |
pho | lib/librefuse: Fix an issue in the header <fuse.h>
It failed to expose "struct fuse_operations" when the FUSE 3.4 API was requested. Any other API versions worked fine.
|
1.35 | 21-Apr-2023 |
abs | branches: 1.35.2; Fix incorrect test for FUSE_USE_VERSION 34
(Thanks to Mark Davies for report)
|
1.34 | 22-Jan-2022 |
pho | branches: 1.34.2; lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.33 | 22-Jan-2022 |
pho | Add some missing struct fields, structs, and constants that are part of the API
|
1.32 | 22-Jan-2022 |
pho | Implement some missing functions that are part of the API
|
1.31 | 22-Jan-2022 |
pho | Correct the wrong prototype of fuse_daemonize(3) while retaining ABI compatibility
|
1.30 | 22-Jan-2022 |
pho | Cosmetic changes
|
1.29 | 22-Jan-2022 |
pho | Change the way how FUSE_*_VERSION are handled
* FUSE_MAKE_VERSION(maj, min) now generates a 3-digits number if the version is higher than 3.9. This is needed to support FUSE 3.10 API.
* FUSE_{MAJOR,MINOR}_VERSION no longer have a fixed value but are derived from FUSE_USE_VERSION specified by the user code. This is needed to support more FUSE filesystems in the wild.
|
1.28 | 22-Jan-2022 |
pho | lib/librefuse: Add support for legacy types and functions
|
1.27 | 22-Jan-2022 |
pho | lib/librefuse: Add stub functions for FUSE polling API
|
1.26 | 22-Jan-2022 |
pho | lib/librefuse: Implement data buffer API appeared on FUSE 2.9
|
1.25 | 22-Jan-2022 |
pho | lib/librefuse: Implement FUSE session API and its signal handling functionality
|
1.24 | 04-Dec-2021 |
pho | librefuse: Preparation of a proper API versioning; no more #ifdef woes in user code
The goal is to fully support FUSE API version 3.0 while maintaining API/ABI compatibility with code written for 2.6 (or even older).
* <fuse.h> now emits a compiler warning if it's included without defining FUSE_USE_VERSION. It had been silently defaulted to the latest supported version prior to this change. This is permissive compared to the original FUSE, as it emits an error instead.
* <fuse.h> now emits a warning if FUSE_USE_VERSION is higher than what can be provided.
* Added a macro FUSE_MAKE_VERSION(maj, min). It was missing from librefuse <fuse.h>.
No actual API updates have been made (yet).
|
1.23 | 10-Apr-2019 |
maya | provide fuse_version
|
1.22 | 20-Nov-2016 |
pho | branches: 1.22.14; fuse_main(3): Support general fuse options via fuse_parse_cmdline(3)
* Prototypes for fuse_new(3), fuse_mount(3), and fuse_unmount(3) now matches to the original fuse interface.
* Add fuse_daemonize(3): needs to have a different prototype, otherwise we can't use puffs_daemon(3).
* Remove fuse_setup(3) and fuse_teardown(3). These obsolete functions has already been removed from the original interface.
* fuse_main(3) now supports the following command-line options compatible with the original fuse:
-h, --help print help message -V, --version print library version (currently does nothing) -d, -o debug enable debug output (PUFFS_FLAG_OPDUMP), implies -f -f foreground mode -s single threaded mode (always enabled for now) -o fsname=NAME explicitly set the name of the file system
* fuse_main(3) now daemonizes the process by default. This is for the compatibility with the original fuse.
|
1.21 | 01-Aug-2008 |
dillo | branches: 1.21.42; Add API version 2.6 variant of fuse_setup.
Reviewed by agc.
|
1.20 | 14-Jan-2008 |
pooka | branches: 1.20.6; Remove puffs_ops from fuse_operations, no reason for it to be there.
|
1.19 | 17-May-2007 |
christos | branches: 1.19.4; More fixes: - make sure that the args array is NULL terminated. - make sure argc is initialized and argv is set to NULL after freeing. - make the deep copy function an opt interface function.
|
1.18 | 16-May-2007 |
xtraeme | Add the $NetBSD$ tag, it's easier to know what revision you have.
|
1.17 | 16-May-2007 |
christos | - Always check strdup return. For now we are lazy and bail instead of cleaning up. - Use malloc and free instead of macros, delete macros. - Merge the two copies of deep copy and free args that were slightly buggy into one and use that one.
XXX: Lots of ints should be size_t. XXX: Bailing on error is not a good thing for a library. XXX: Defs.h should be eliminated completely. Not all files need all the headers.
|
1.16 | 16-May-2007 |
agc | The FUSE_USE_VERSION is the definition which the user sets, and which determines the API.
Provide a default for FUSE_USE_VERSION if it's not set, and use this value to determine the number of arguments given to fuse_main().
|
1.15 | 15-May-2007 |
agc | Fuse version 2.6 (and above) has a 4 argument version of fuse_main(), whereas previous versions had a 3 argument one. Accept both.
|
1.14 | 03-May-2007 |
agc | ...and include fuse_opt.h in the correct place.
|
1.13 | 03-May-2007 |
agc | Implement fuse_setup(), and fuse_teardown() - necessary for the python bindings for refuse.
|
1.12 | 03-May-2007 |
agc | FUSE includes fuse_opt.h from fuse.h, albeit indirectly, via fuse_common.h.
Refuse doessn't have a fuse_common.h, so include fuse_opt.h explicitly from fuse.h. To avoid circular dependencies, don't include fuse.h from fuse_opt.h.
This means that we no longer have to modify packages which use the argument and option parsing routines to include fuse_opt.h.
|
1.11 | 13-Mar-2007 |
agc | Revert the most recent changes I made - they weren't ready for primetime.
|
1.10 | 13-Mar-2007 |
agc | + Only use EXIT_SUCCESS and EXIT_FAILURE for the return code to the shell in the fuse_opt functions
+ add new debugging functions: + __fuse_debug(), which is used to set and retrieve the debugging level, so that debugging information can be turned on and off from the user-level filesystem, and + __fuse_pargs(), which prints out an argv vector
+ put the comment about pu_privdata back with the code it references
+ put the code to place the refuse name back into the fuse_new() function - we have access to all the arguments there.
+ specifically include <fuse_opt.h> in <fuse.h> - this would seem to be what FUSE itself does, judging by the number of fuse-based filesystems I've patched to include <fuse_opt.h> specifically
+ do away with the forward reference to struct fuse_args in fuse.h, since it is defined just after the forward reference without being referenced in between
+ fill in the missing refuse_opt args functionality - add an arg to the args structure in fuse_opt_add_arg() and fuse_opt_insert_arg(), and free allocated memory in fuse_opt_free_args().
+ get rid of spurious forward declarations and prototypes.
+ if REFUSE_INHERIT_FS_CHARACTERISTICS is defined when refuse is built, file systems inherit the vfs characteristics of their mountpoints. The default value is NOT to inherit the vfs characteristics.
+ perform a deep copy of the fuse_args structure in fuse_mount() - this is so that existing FUSE filesystems still DTRT when arguments are zeroed out.
|
1.9 | 28-Feb-2007 |
xtraeme | * Move fuse_opt* defs and prototypes into fuse_opt.h. * Move fuse_opt* funcs from refuse.c into refuse_opt.c.
Implement fuse_opt_parse() and fuse_opt_match(). And make the other functions just dummy, always returning 0 (I added debugging printfs to see what the application is trying to do).
For now there are two things that do not work in fuse_opt:
* options accepting arguments, i.e -otimeout=%u or -ofile=%s. * options without arguments are not enabled, just parsed.
At least now curlftpfs works, even with verbose mode! :-)
Ok'ed by pooka.
|
1.8 | 26-Feb-2007 |
pooka | Refactor a few interfaces a bit to look more like fuse. fuse_args is implemented as a very dummy version (i.e. totally unimplemented), so some effort is still needed there.
After this change it is possible to compile and run ntfs-3g. It works read/write for ntfs images and shows no faults at least with superficial testing. I did not test it against a block device, only an image.
Thanks to Tracy and Jason for help with the test image.
|
1.7 | 26-Feb-2007 |
pooka | Implement readdir properly, or at least as close to possible to how fuse does it: read directory completely into refuse buffers if starting from read offset 0 and for later calls trickle results from the buffers to the kernel without consulting the fuse file system.
|
1.6 | 19-Feb-2007 |
pooka | Implement a very very stubby fuse_unmount(), which does ... nothing. Pending some puffs changes that are in the queue, this is the best way currently.
|
1.5 | 18-Feb-2007 |
pooka | move getdir() location to match layout of real fuse operations
|
1.4 | 18-Feb-2007 |
agc | Added extra functionality:
fuse_opt_free_args()
fuse_exit()
Both from Juan RP - thanks!
|
1.3 | 15-Feb-2007 |
pooka | Implement a very very hacky fuse_get_context(), needs to be visited once threading is added (and probably otherwise also).
|
1.2 | 11-Feb-2007 |
pooka | implement getdir, used by some older fuse file systems instead of readdir
|
1.1 | 11-Feb-2007 |
agc | Add an implementation of the file system in userspace functionality, based on top of libpuffs. This version is still barebones and incomplete, but will benefit from others working on it, rather than just me.
The option code has still to be implemented, but this gets far enough to run hellofs (from the fuse web page):
% priv ./hellofs ~/hellofs/mnt & % l ~/hellofs/mnt total 2 drwxr-xr-x 2 root wheel 0 Jan 1 1970 . drwxr-xr-x 4 agc agc 512 Feb 9 18:05 .. -r--r--r-- 1 root wheel 13 Jan 1 1970 hello % cat ~/hellofs/mnt/hello Hello World! % df ~/hellofs/mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/dk0 28101396 18946682 7749646 70% / kernfs 1 1 0 100% /kern procfs 4 4 0 100% /proc ptyfs 1 1 0 100% /dev/pts puffs:refuse:hellofs 28101396 18946682 7749646 70% /home/agc/hellofs/mnt % mount -v -v ... mount: mount_puffs not found for /home/agc/hellofs/mnt puffs:refuse:hellofs on /home/agc/hellofs/mnt type puffs (nosuid, nodev, fsid: 0xcb01/0x6acb, reads: sync 0 async 0, writes: sync 0 async 0) %
This code is not enabled by default. Yet.
|
1.19.4.1 | 23-Mar-2008 |
matt | sync with HEAD
|
1.20.6.1 | 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
1.21.42.1 | 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.22.14.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.34.2.1 | 25-Apr-2023 |
martin | Pull up following revision(s) (requested by abs in ticket #146):
lib/librefuse/fuse.h: revision 1.35
Fix incorrect test for FUSE_USE_VERSION 34 (Thanks to Mark Davies for report)
|
1.35.2.1 | 02-Aug-2025 |
perseant | Sync with HEAD
|
1.5 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.4 | 22-Jan-2022 |
pho | Support the FUSE option -ho
It is supposed to print a help message without the usage line. Although it is deprecated and has been removed as of FUSE 3.0, filesystems in the wild still use it.
|
1.3 | 22-Jan-2022 |
pho | Change the way how FUSE_*_VERSION are handled
* FUSE_MAKE_VERSION(maj, min) now generates a 3-digits number if the version is higher than 3.9. This is needed to support FUSE 3.10 API.
* FUSE_{MAJOR,MINOR}_VERSION no longer have a fixed value but are derived from FUSE_USE_VERSION specified by the user code. This is needed to support more FUSE filesystems in the wild.
|
1.2 | 22-Jan-2022 |
pho | lib/librefuse: Implement FUSE session API and its signal handling functionality
|
1.1 | 04-Dec-2021 |
pho | librefuse: Preparation of a proper API versioning; no more #ifdef woes in user code
The goal is to fully support FUSE API version 3.0 while maintaining API/ABI compatibility with code written for 2.6 (or even older).
* <fuse.h> now emits a compiler warning if it's included without defining FUSE_USE_VERSION. It had been silently defaulted to the latest supported version prior to this change. This is permissive compared to the original FUSE, as it emits an error instead.
* <fuse.h> now emits a warning if FUSE_USE_VERSION is higher than what can be provided.
* Added a macro FUSE_MAKE_VERSION(maj, min). It was missing from librefuse <fuse.h>.
No actual API updates have been made (yet).
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement logging API appeared on FUSE 3.7
|
1.3 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.2 | 22-Jan-2022 |
pho | Implement some missing functions that are part of the API
|
1.1 | 20-Nov-2016 |
pho | branches: 1.1.2; fuse_lowlevel.h: new file, currently only contains fuse_parse_cmdline(3) and struct fuse_cmdline_opts
|
1.1.2.2 | 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.1.2.1 | 20-Nov-2016 |
pgoyette | file fuse_lowlevel.h was added on branch pgoyette-localcount on 2017-01-07 08:56:04 +0000
|
1.10 | 22-Jan-2022 |
pho | Cosmetic changes
|
1.9 | 01-Dec-2021 |
pho | Revert my previous change to struct fuse_opt
I should have thought twice before commiting it. Of course changing the layout of a struct breaks ABI compatibility. Change the offset back to fixed 32 bits.
|
1.8 | 01-Dec-2021 |
pho | Use correct types for the fields of struct fuse_opt
This change shouldn't make any behavioral differences in reality, but compilers these days dislike converting -1U to int32_t implicitly, which is indeed understandable.
|
1.7 | 14-Nov-2016 |
pho | Implement missing fuse_opt_add_opt(3) and fuse_opt_add_opt_escaped(3)
|
1.6 | 22-Jan-2016 |
dholland | branches: 1.6.2; Needs stdint.h.
|
1.5 | 19-Apr-2009 |
christos | PR/41250: David H. Gutteridge: librefuse fuse_opt.h header doesn't accommodate C++ compilation
|
1.4 | 17-May-2007 |
christos | branches: 1.4.18; 1.4.20; More fixes: - make sure that the args array is NULL terminated. - make sure argc is initialized and argv is set to NULL after freeing. - make the deep copy function an opt interface function.
|
1.3 | 03-May-2007 |
agc | FUSE includes fuse_opt.h from fuse.h, albeit indirectly, via fuse_common.h.
Refuse doessn't have a fuse_common.h, so include fuse_opt.h explicitly from fuse.h. To avoid circular dependencies, don't include fuse.h from fuse_opt.h.
This means that we no longer have to modify packages which use the argument and option parsing routines to include fuse_opt.h.
|
1.2 | 28-Feb-2007 |
xtraeme | Add missing NetBSD RCS id.
|
1.1 | 28-Feb-2007 |
xtraeme | * Move fuse_opt* defs and prototypes into fuse_opt.h. * Move fuse_opt* funcs from refuse.c into refuse_opt.c.
Implement fuse_opt_parse() and fuse_opt_match(). And make the other functions just dummy, always returning 0 (I added debugging printfs to see what the application is trying to do).
For now there are two things that do not work in fuse_opt:
* options accepting arguments, i.e -otimeout=%u or -ofile=%s. * options without arguments are not enabled, just parsed.
At least now curlftpfs works, even with verbose mode! :-)
Ok'ed by pooka.
|
1.4.20.1 | 13-May-2009 |
jym | Sync with HEAD.
Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
|
1.4.18.1 | 08-Aug-2011 |
riz | Pull up following revision(s) (requested by tron in ticket #1649): lib/librefuse/fuse_opt.h: revision 1.5 PR/41250: David H. Gutteridge: librefuse fuse_opt.h header doesn't accommod= ate C++ compilation
|
1.6.2.1 | 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.15 | 11-Apr-2019 |
wiz | Avoid marking up semicolons.
|
1.14 | 10-Apr-2019 |
maya | provide fuse_version
|
1.13 | 20-Nov-2016 |
pho | branches: 1.13.14; fuse_main(3): Support general fuse options via fuse_parse_cmdline(3)
* Prototypes for fuse_new(3), fuse_mount(3), and fuse_unmount(3) now matches to the original fuse interface.
* Add fuse_daemonize(3): needs to have a different prototype, otherwise we can't use puffs_daemon(3).
* Remove fuse_setup(3) and fuse_teardown(3). These obsolete functions has already been removed from the original interface.
* fuse_main(3) now supports the following command-line options compatible with the original fuse:
-h, --help print help message -V, --version print library version (currently does nothing) -d, -o debug enable debug output (PUFFS_FLAG_OPDUMP), implies -f -f foreground mode -s single threaded mode (always enabled for now) -o fsname=NAME explicitly set the name of the file system
* fuse_main(3) now daemonizes the process by default. This is for the compatibility with the original fuse.
|
1.12 | 15-Nov-2016 |
pho | fuse_opt_match(3): Support every form of templates, not just the simple strcmp case
Also it should return 1 for successful matches, not the way around.
|
1.11 | 14-Nov-2016 |
pho | Add missing macros
|
1.10 | 14-Nov-2016 |
pho | Implement missing fuse_opt_add_opt(3) and fuse_opt_add_opt_escaped(3)
|
1.9 | 18-Mar-2014 |
riastradh | branches: 1.9.8; Merge riastradh-drm2 to HEAD.
|
1.8 | 20-Jul-2013 |
wiz | Use Mt for email addresses.
|
1.7 | 08-Nov-2007 |
pooka | branches: 1.7.28; 1.7.34; 1.7.40; I've written more than a fair share of this to see my name up in lights. Wine & women, come to me now!
|
1.6 | 24-Sep-2007 |
pooka | Add refuse paper to SEE ALSO
|
1.5 | 09-Jun-2007 |
wiz | branches: 1.5.4; Make Nm match Dt. This makes it easier to guess what the man page is called when you find it with man -k.
|
1.4 | 03-May-2007 |
agc | Implement fuse_setup(), and fuse_teardown() - necessary for the python bindings for refuse.
|
1.3 | 17-Feb-2007 |
wiz | Remove superfluous Pp. Fix xref target.
|
1.2 | 11-Feb-2007 |
pooka | insert comma in SEE ALSO list in fear of retaliation by wizd
|
1.1 | 11-Feb-2007 |
agc | Add an implementation of the file system in userspace functionality, based on top of libpuffs. This version is still barebones and incomplete, but will benefit from others working on it, rather than just me.
The option code has still to be implemented, but this gets far enough to run hellofs (from the fuse web page):
% priv ./hellofs ~/hellofs/mnt & % l ~/hellofs/mnt total 2 drwxr-xr-x 2 root wheel 0 Jan 1 1970 . drwxr-xr-x 4 agc agc 512 Feb 9 18:05 .. -r--r--r-- 1 root wheel 13 Jan 1 1970 hello % cat ~/hellofs/mnt/hello Hello World! % df ~/hellofs/mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/dk0 28101396 18946682 7749646 70% / kernfs 1 1 0 100% /kern procfs 4 4 0 100% /proc ptyfs 1 1 0 100% /dev/pts puffs:refuse:hellofs 28101396 18946682 7749646 70% /home/agc/hellofs/mnt % mount -v -v ... mount: mount_puffs not found for /home/agc/hellofs/mnt puffs:refuse:hellofs on /home/agc/hellofs/mnt type puffs (nosuid, nodev, fsid: 0xcb01/0x6acb, reads: sync 0 async 0, writes: sync 0 async 0) %
This code is not enabled by default. Yet.
|
1.5.4.2 | 09-Jan-2008 |
matt | sync with HEAD
|
1.5.4.1 | 06-Nov-2007 |
matt | sync with HEAD
|
1.7.40.1 | 23-Jul-2013 |
riastradh | sync with HEAD
|
1.7.34.1 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.7.28.1 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.9.8.1 | 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.13.14.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.114 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.113 | 22-Jan-2022 |
pho | Zero-clear the fuse_context in fuse_destroy(3)
|
1.112 | 22-Jan-2022 |
pho | Support the FUSE option -ho
It is supposed to print a help message without the usage line. Although it is deprecated and has been removed as of FUSE 3.0, filesystems in the wild still use it.
|
1.111 | 22-Jan-2022 |
pho | Implement some missing functions that are part of the API
|
1.110 | 22-Jan-2022 |
pho | Correct the wrong prototype of fuse_daemonize(3) while retaining ABI compatibility
|
1.109 | 22-Jan-2022 |
pho | Change the way how FUSE_*_VERSION are handled
* FUSE_MAKE_VERSION(maj, min) now generates a 3-digits number if the version is higher than 3.9. This is needed to support FUSE 3.10 API.
* FUSE_{MAJOR,MINOR}_VERSION no longer have a fixed value but are derived from FUSE_USE_VERSION specified by the user code. This is needed to support more FUSE filesystems in the wild.
|
1.108 | 22-Jan-2022 |
pho | Implement a dummy pathconf() which always returns EINVAL
|
1.107 | 22-Jan-2022 |
pho | Do not call fuse_operations.getattr() before initializing filesystem
|
1.106 | 22-Jan-2022 |
pho | Increase the warning level to spot more mistakes
|
1.105 | 22-Jan-2022 |
pho | lib/librefuse: Add support for legacy types and functions
|
1.104 | 22-Jan-2022 |
pho | lib/librefuse: Implement FUSE session API and its signal handling functionality
|
1.103 | 04-Dec-2021 |
pho | librefuse: Preparation of a proper API versioning; no more #ifdef woes in user code
The goal is to fully support FUSE API version 3.0 while maintaining API/ABI compatibility with code written for 2.6 (or even older).
* <fuse.h> now emits a compiler warning if it's included without defining FUSE_USE_VERSION. It had been silently defaulted to the latest supported version prior to this change. This is permissive compared to the original FUSE, as it emits an error instead.
* <fuse.h> now emits a warning if FUSE_USE_VERSION is higher than what can be provided.
* Added a macro FUSE_MAKE_VERSION(maj, min). It was missing from librefuse <fuse.h>.
No actual API updates have been made (yet).
|
1.102 | 30-Nov-2021 |
pho | Move the call of fuse_operations::init() from fuse_new() to fuse_loop()
Prior to this change we were calling init() before daemonizing the process. Some filesystems call chdir(2) in init() but fuse_daemonize() call chdir("/"), which breaks assumptions about the state of the process.
|
1.101 | 23-Sep-2019 |
christos | Restore binary compatibility by using the statvfs90 structure internally.
|
1.100 | 10-Apr-2019 |
maya | Use the equivalent FUSE_VERSION. Probably a more adequately named macro for this
|
1.99 | 10-Apr-2019 |
maya | provide fuse_version
|
1.98 | 20-Nov-2016 |
pho | branches: 1.98.14; fuse_main(3): Support general fuse options via fuse_parse_cmdline(3)
* Prototypes for fuse_new(3), fuse_mount(3), and fuse_unmount(3) now matches to the original fuse interface.
* Add fuse_daemonize(3): needs to have a different prototype, otherwise we can't use puffs_daemon(3).
* Remove fuse_setup(3) and fuse_teardown(3). These obsolete functions has already been removed from the original interface.
* fuse_main(3) now supports the following command-line options compatible with the original fuse:
-h, --help print help message -V, --version print library version (currently does nothing) -d, -o debug enable debug output (PUFFS_FLAG_OPDUMP), implies -f -f foreground mode -s single threaded mode (always enabled for now) -o fsname=NAME explicitly set the name of the file system
* fuse_main(3) now daemonizes the process by default. This is for the compatibility with the original fuse.
|
1.97 | 17-Nov-2016 |
pho | Change the way how puffs_fuse_node_create() behaves.
In puffs "create" and "open" are two separate operations with atomicity achieved by locking the parent vnode. In fuse, on the other hand, "create" is actually a create-and-open-atomically and the open flags (O_RDWR, O_APPEND, ...) are passed via fi.flags. So the only way to emulate the fuse semantics is to open the file with dummy flags and then immediately close it.
You might think that we could simply use fuse->op.mknod all the time but no, that's not possible because most file systems nowadays expect op.mknod to be called only for non-regular files and many don't even support it.
|
1.96 | 30-Dec-2012 |
tron | branches: 1.96.12; FUSE seems to allow short writes without errors but PUFFS doesn't. Work around this by returning ENOSPC in case of a short write to avoid protocol errors. This change is based on problem analysis provided by Antti Kantee.
This fixes PR lib/45129 by myself.
|
1.95 | 24-Nov-2011 |
manu | branches: 1.95.2; 1.95.6; Set eofflag in puffs_fuse_node_readdir() from librefuse.
From Evgeniy Ivanov <lolkaantimat@gmail.com>
|
1.94 | 09-Jul-2011 |
tron | branches: 1.94.2; Call the FUSE init operation before we try to access the file-system. This prevents a crash in "fuse_ext2" which I previously worked around with a patch.
|
1.93 | 09-Jul-2011 |
tron | Don't ignore "userdata" argument in "fuse_main_real". This can crash a FUSE file-system that passes a non-NULL argument here.
|
1.92 | 05-Mar-2009 |
msaitoh | fix typo (s/stucture/structure/)
|
1.91 | 26-Jan-2009 |
lukem | branches: 1.91.2; sign-compare fix
|
1.90 | 19-Jan-2009 |
lukem | fix -Wsign-compare issue
|
1.89 | 01-Aug-2008 |
dillo | branches: 1.89.4; Add API version 2.6 variant of fuse_setup.
Reviewed by agc.
|
1.88 | 14-Jan-2008 |
pooka | branches: 1.88.6; return -ret from statfs
|
1.87 | 27-Dec-2007 |
pooka | Uncommit accidentally committed PUFFS_FLAG_OPDUMP.
overextensive library verbosity noticed by riz
|
1.86 | 12-Dec-2007 |
xtraeme | puffs_fuse_node_create: if create() is specified set S_IFREG explicitly to avoid passing unspecified mode. Fixes latest ntfs-3g... patch from pooka tested by myself.
|
1.85 | 30-Nov-2007 |
pooka | Rototill.
Ok, ok, a few more words about it: stop holding puffs_cc as a holy value and passing it around to almost every possible place (popquiz: which kernel variable does this remind you of?). Instead, pass the natural choice, puffs_usermount, and fetch puffs_cc via puffs_cc_getcc() only in routines which actually need it. This not only simplifies code, but (thanks to the introduction of puffs_cc_getcc()) enables constructs which weren't previously sanely possible, say layering as a curious example.
There's still a little to do on this front, but this was the major fs interface blast.
|
1.84 | 27-Nov-2007 |
pooka | Remove "puffs_cid" from the puffs interface following l-removal from the kernel vfs interfaces. puffs_cc_getcaller(pcc) can be used now should the same information be desired.
|
1.83 | 08-Nov-2007 |
pooka | I've written more than a fair share of this to see my name up in lights. Wine & women, come to me now!
|
1.82 | 05-Nov-2007 |
pooka | Pull the daemonizing code out of the library mainloop into the file servers. Calling daemon() (i.e. fork()ing) inside a library can cause nice surprises for e.g. threaded programs. As discussed with Greg Oster & others.
|
1.81 | 05-Nov-2007 |
pooka | Header cleanup: don't need defs.h to do a few includes for us. Also, use #include <> for global headers instead of #include "".
|
1.80 | 05-Nov-2007 |
pooka | * Fix pthread key creation to depend on if it hasn't been created before instead of depending if a lock was succesfully acquired. Also, add a comment explaining why it is such complex (for all I could guess). * replace err()'s with abort() * replace some abort()'s by returning failure
|
1.79 | 28-Oct-2007 |
pooka | Use puffs prepost ops for setting pid/lwpid instead of separate calls in all methods.
|
1.78 | 23-Oct-2007 |
pooka | revert 1.77, MULTITHREADED_REFUSE has problems
|
1.77 | 21-Oct-2007 |
pooka | Get rid of MULTITHREADED_REFUSE for context queries. We can simply use the pthread codepaths always.
|
1.76 | 21-Oct-2007 |
pooka | Use new puffs features to provide correct caller info instead of sometimes returning stale data.
|
1.75 | 25-Aug-2007 |
pooka | branches: 1.75.2; Now that we don't dump operations by default, might as well detach from the console by default also. (but still would be nice if someone provided options to toggle these using the fuse options framework)
|
1.74 | 12-Aug-2007 |
pooka | In case a file system doesn't provide st_blksize, default to DEV_BSIZE.
|
1.73 | 18-Jul-2007 |
pooka | branches: 1.73.4; Don't stay on the foreground and dump operations by default.
XXX: someone(tm) should make it possible to set PUFFS_OPFLAG_DUMP using the fuse options framework
|
1.72 | 17-Jul-2007 |
pooka | * add mntfromname parameter to puffs_init() * set it in file servers
|
1.71 | 01-Jul-2007 |
pooka | adapt: **newnode etc. pointers -> struct puffs_newinfo
|
1.70 | 01-Jul-2007 |
pooka | adapt: pid -> const struct puffs_cid *
|
1.69 | 01-Jul-2007 |
pooka | adapt: pcn->pcn_cred is now a pointer
|
1.68 | 24-Jun-2007 |
pooka | Actually, keep PUFFS_KFLAG_NOCACHE and -o cache around as shorthand to neither page- nor namecache.
|
1.67 | 24-Jun-2007 |
pooka | PUFFS_KFLAG_NOCACHE became two, so introduce the command line options -o nonamecache and -o nopagecache and adapt file systems where necessary.
|
1.66 | 12-Jun-2007 |
agc | Use pthread_[gs]etspecific to store a pointer to the fuse_context information, enabled if MULTITHREADED_REFUSE is defined at build time. This is not enabled by default since libpuffs is not threadsafe yet.
librefuse is still not threadsafe, but this gets rid of a whole lot of problems in the meantime.
|
1.65 | 12-Jun-2007 |
agc | Minor cleanup - change uses of malloc, memset to calloc.
Use EXIT_FAILURE in preference to the less informational 1.
|
1.64 | 12-Jun-2007 |
agc | Re-work the way the SET_FUSE_CONTEXT* macros are done, following feedback from Antti.
|
1.63 | 11-Jun-2007 |
agc | # use puffs_cred_getuid(3) and puffs_cred_getgid(3)
for i in `jot 100 1`; do echo "I must respect the abstractions which pooka put in puffs_cred(3)" done
|
1.62 | 11-Jun-2007 |
agc | Set the uid, gid and pid wherever possible (i.e. where known). This gets us far enough along that fuse-loggedfs now works with the correct command, uid and gid being displayed.
|
1.61 | 24-May-2007 |
agc | After we've malloc'd an area of storage, zero out this storage, "just in case".
|
1.60 | 17-May-2007 |
pooka | Calling puffs_exit() in fuse_{exit,unmount}() is wrong, as those shouldn't release resources. As a quick hack to prevent double frees etc, introduce "dead" variable into fuse channel to signal if the backing puffs resource was already freed. XXX: the check is only in exit/unmount currently.
Proper fix really depends on some puffs features I still haven't gotten around to doing.
|
1.59 | 17-May-2007 |
pooka | create hash for the root path object
|
1.58 | 17-May-2007 |
pooka | initialize refusenode contents to 0
(don't change malloc to calloc and expect things not to break)
|
1.57 | 17-May-2007 |
pooka | reflect changes in fs mount: use puffs_mount() instead of puffs_domount() & puffs_start()
|
1.56 | 17-May-2007 |
christos | More fixes: - make sure that the args array is NULL terminated. - make sure argc is initialized and argv is set to NULL after freeing. - make the deep copy function an opt interface function.
|
1.55 | 16-May-2007 |
christos | - Always check strdup return. For now we are lazy and bail instead of cleaning up. - Use malloc and free instead of macros, delete macros. - Merge the two copies of deep copy and free args that were slightly buggy into one and use that one.
XXX: Lots of ints should be size_t. XXX: Bailing on error is not a good thing for a library. XXX: Defs.h should be eliminated completely. Not all files need all the headers.
|
1.54 | 16-May-2007 |
pooka | Enable puffs_fakecc. FUSE file systems don't use continuations anyway, and now file servers linked against libpthread won't crash when they attempt to malloc something.
|
1.53 | 15-May-2007 |
agc | When parsing arguments for the directory to mount, search backwards from the end of the argument vector for an argument that doesn't begin with '-', and use it - this improves upon the previous naive approach of using the last argument, which could have been placed there by one of the argument appending functions.
Be consistent with the mount name processing, and always do the puffs:refuse:filesystem substitution once and once only.
% priv mount.ntfs-3g ntfs-refuse.img /mnt % df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on puffs:refuse:ntfs-3g 1000943 66309 934634 6% /mnt % priv umount /mnt % priv /usr/src/share/examples/refuse/id3fs/id3fs /mnt & % df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on puffs:refuse:id3fs 0 0 0 100% /mnt % priv umount /mnt %
|
1.52 | 15-May-2007 |
agc | When puffs_mount fails, display the name of the directory which wasn't able to be mounted.
|
1.51 | 03-May-2007 |
agc | Implement fuse_setup(), and fuse_teardown() - necessary for the python bindings for refuse.
|
1.50 | 02-May-2007 |
pooka | In case a fuse fs hands an stbuf with an inode number 0 to the readdir filler, fake the inode number. Our readdir() doesn't show entries with inode number 0.
per discussion with Stephen Borrill
|
1.49 | 01-May-2007 |
pooka | use PUFFS_FLAG_HASHPATH
|
1.48 | 16-Apr-2007 |
agc | Flesh out the args management a bit more:
+ put some meat into the add_arg and insert_arg functions + implement the free_args function + use 0 and 1 return values, instead of EXIT_SUCCESS and EXIT_FAILURE, in internal functions (they bear no relation to shell exit values) + deep copy argument structures in refuse.c - we need to do this because some FUSE file systems attempt to obliterate^Wcloak the argument vector "for security reasons" + a side benefit of this is that we get the specific refuse file system name back again:
[10:48:43] agc@inspiron1300 ...src/lib/librefuse 38 > df Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/dk0 28101396 19318530 7377798 72% / kernfs 1 1 0 100% /kern procfs 4 4 0 100% /proc ptyfs 1 1 0 100% /dev/pts puffs:refuse:id3fs 0 0 0 100% /mnt [10:48:51] agc@inspiron1300 ...src/lib/librefuse 39 >
|
1.47 | 13-Apr-2007 |
pooka | Instead of keeping on adding parameters to puffs_mount(), make it only take the bare essentials, which currently means removing "maxreqlen" from the argument list (all current callers I'm aware of set it as 0 anyway). Introduce puffs_init(), which provides a context for setting various parameters and puffs_domount(), which can be used to mount the file system. Keep puffs_mount() as a shortcut for the above two for simple file systems.
Bump development ABI version to 13. After all, it's Friday the 13th. Watch out! Bad things can happen on Friday the 13th. --No carrier--
|
1.46 | 12-Apr-2007 |
pooka | Hide struct puffs_usermount from the rest of the world and provide accessors for interesting data in it. Namely, you can now get pu->pu_privdata with puffs_getspecific(), pu->pu_pn_root with puffs_set/getroot() and pu->pu_maxreqlen with puffs_getmaxreqlen().
|
1.45 | 11-Apr-2007 |
pooka | adapt to new readdir signature. no functional change
|
1.44 | 16-Mar-2007 |
pooka | use puffs_addvtype2mode() in puffs_fuse_node_mknod()
|
1.43 | 13-Mar-2007 |
agc | Revert the most recent changes I made - they weren't ready for primetime.
|
1.42 | 13-Mar-2007 |
agc | Fix a thinko - if we're going to do a deep copy, let's do it properly.
With thanks to xtraeme for the viirtual PR.
|
1.41 | 13-Mar-2007 |
agc | + Only use EXIT_SUCCESS and EXIT_FAILURE for the return code to the shell in the fuse_opt functions
+ add new debugging functions: + __fuse_debug(), which is used to set and retrieve the debugging level, so that debugging information can be turned on and off from the user-level filesystem, and + __fuse_pargs(), which prints out an argv vector
+ put the comment about pu_privdata back with the code it references
+ put the code to place the refuse name back into the fuse_new() function - we have access to all the arguments there.
+ specifically include <fuse_opt.h> in <fuse.h> - this would seem to be what FUSE itself does, judging by the number of fuse-based filesystems I've patched to include <fuse_opt.h> specifically
+ do away with the forward reference to struct fuse_args in fuse.h, since it is defined just after the forward reference without being referenced in between
+ fill in the missing refuse_opt args functionality - add an arg to the args structure in fuse_opt_add_arg() and fuse_opt_insert_arg(), and free allocated memory in fuse_opt_free_args().
+ get rid of spurious forward declarations and prototypes.
+ if REFUSE_INHERIT_FS_CHARACTERISTICS is defined when refuse is built, file systems inherit the vfs characteristics of their mountpoints. The default value is NOT to inherit the vfs characteristics.
+ perform a deep copy of the fuse_args structure in fuse_mount() - this is so that existing FUSE filesystems still DTRT when arguments are zeroed out.
|
1.40 | 28-Feb-2007 |
xtraeme | * Move fuse_opt* defs and prototypes into fuse_opt.h. * Move fuse_opt* funcs from refuse.c into refuse_opt.c.
Implement fuse_opt_parse() and fuse_opt_match(). And make the other functions just dummy, always returning 0 (I added debugging printfs to see what the application is trying to do).
For now there are two things that do not work in fuse_opt:
* options accepting arguments, i.e -otimeout=%u or -ofile=%s. * options without arguments are not enabled, just parsed.
At least now curlftpfs works, even with verbose mode! :-)
Ok'ed by pooka.
|
1.39 | 26-Feb-2007 |
agc | For just now, just use "puffs:refuse" as the file system name - this will be revisited when thee fuse_args parsing is revisited.
|
1.38 | 26-Feb-2007 |
pooka | Refactor a few interfaces a bit to look more like fuse. fuse_args is implemented as a very dummy version (i.e. totally unimplemented), so some effort is still needed there.
After this change it is possible to compile and run ntfs-3g. It works read/write for ntfs images and shows no faults at least with superficial testing. I did not test it against a block device, only an image.
Thanks to Tracy and Jason for help with the test image.
|
1.37 | 26-Feb-2007 |
pooka | convert FREAD/FWRITE to O_RDWR-stuff in open
|
1.36 | 26-Feb-2007 |
pooka | Implement readdir properly, or at least as close to possible to how fuse does it: read directory completely into refuse buffers if starting from read offset 0 and for later calls trickle results from the buffers to the kernel without consulting the fuse file system.
|
1.35 | 26-Feb-2007 |
pooka | revert 1.34, as discussed with agc. It creates more problems than it solves, namely breaks ~all fuse file systems. Proper fix is known but not yet implemented.
|
1.34 | 23-Feb-2007 |
agc | For large directories, remove the artificial restriction on one buffer's worth of directory entries - this work is done in the higher level (re)fuse readdir or getdir operation.
|
1.33 | 20-Feb-2007 |
pooka | * missing open is not a failure, just return 0 * nuke accidentally committed debug printf
|
1.32 | 20-Feb-2007 |
pooka | reverse order of arguments to fuse->op.symlink, remove comment suspecting argument order reversal
|
1.31 | 20-Feb-2007 |
pooka | * Thread flags to VOP_OPEN (except of course O_CREAT, O_TRUNC and O_EXCL) through fuse_file_info to the fuse open operation. * reference count opens for each node and do release once the count drops to zero (instead of waiting for inactive). I'm still not sure if this exactly matches linux/fuse behaviour, but at least we do open when a new file descriptor is opened for each node and a do a release when the reference to the last file descriptor for a node is closed, so it ought to be pretty close
cryptofs works after these changes
|
1.30 | 20-Feb-2007 |
pooka | * create a refusenode also for the root node * opendir directories in open
|
1.29 | 19-Feb-2007 |
pooka | Implement a very very stubby fuse_unmount(), which does ... nothing. Pending some puffs changes that are in the queue, this is the best way currently.
|
1.28 | 19-Feb-2007 |
pooka | fix return-in-the-middle bug in inactive. and while there, make it always return 0, since the return value is not used for error indication for the kernel
|
1.27 | 19-Feb-2007 |
xtraeme | puffs_fuse_node_inactive: initialize ret to 0 to avoid a warning.
|
1.26 | 19-Feb-2007 |
pooka | * combine emulation layer tasks for node creation to a common routine * make set/getattr easily callable from interface functions and sprinkle calls to locations which require them * use libpuffs routine for stat->vattr translation instead of homegrown one * I have concluded that we really want to do release/releasedir in inactive instead of reclaim. make it so. we'll tweak it for the next file system which decides it doesn't want to work
after these changes lzofs works, at least for most parts (I'd assume the non-working parts to fail also on fuse/linux)
|
1.25 | 18-Feb-2007 |
pooka | * don't allow reads beyond at offset = EOF, all fuse file systems can't handle it * initialize refuse root node properly * some misc cleanup
|
1.24 | 18-Feb-2007 |
pooka | fix rename (yes, it's really that simple)
|
1.23 | 18-Feb-2007 |
pooka | * oh, and when removing, remove the target node, not its parent directory * use PUFFS_KFLAG_NOCACHE always for now, since code is too jumpy and volatile to deal with caches
|
1.22 | 18-Feb-2007 |
pooka | * map reclaim to release, but call it only for files which were opened * use node paths in remove/rmdir instead of pcn full paths (which are null for those ops)
|
1.21 | 18-Feb-2007 |
pooka | in create, if op.create doesn't exist, try op.mknod instead
|
1.20 | 18-Feb-2007 |
agc | Added extra functionality:
fuse_opt_free_args()
fuse_exit()
Both from Juan RP - thanks!
|
1.19 | 18-Feb-2007 |
pooka | support some more fuse interfaces required for setattr: utimens, utime, truncate and ftruncate
|
1.18 | 16-Feb-2007 |
pooka | * can't call unlink(2) & rmdir(2) in error paths. Rather, call ops specified in the fuse op vector (or, if they're missing, we're SOL) * great return value overhaul: return -ret to get linuxy -errno right for the kernel
|
1.17 | 16-Feb-2007 |
pooka | write to end-of-file in case of IOAPPEND
|
1.16 | 16-Feb-2007 |
pooka | * first stab at create * return proper return values from read/write
|
1.15 | 15-Feb-2007 |
pooka | No need to set read, readdir and write in the ops vector twice. Pair up some ops while shuffling.
|
1.14 | 15-Feb-2007 |
pooka | Readlink should place the length of the link (without terminating nul) in the length field. Make it so.
|
1.13 | 15-Feb-2007 |
pooka | * slightly better dirfillers * make readlink work
|
1.12 | 15-Feb-2007 |
pooka | implement proper lookup
|
1.11 | 15-Feb-2007 |
pooka | Implement a very very hacky fuse_get_context(), needs to be visited once threading is added (and probably otherwise also).
|
1.10 | 11-Feb-2007 |
pooka | link operation does not create a new node, therefore don't do it in the code either
|
1.9 | 11-Feb-2007 |
pooka | need to compare against PUFFS_VNOVAL instead of 0 to determnine if fields are valid
|
1.8 | 11-Feb-2007 |
pooka | pass real fuse_file_info to rest of fuse ops instead of a memset-to-zero one
|
1.7 | 11-Feb-2007 |
pooka | sprinkle some KNF
agc ok
|
1.6 | 11-Feb-2007 |
pooka | fuse directory fillers return opposite truth values from puffs_nextdent, so invert return value to make readdir callers which check the return value work.
|
1.5 | 11-Feb-2007 |
pooka | Allocate refuse private data, refusenode, for all nodes. Currently it carries fuse_file_info.
.. and lo, cddafs works
|
1.4 | 11-Feb-2007 |
pooka | implement getdir, used by some older fuse file systems instead of readdir
|
1.3 | 11-Feb-2007 |
pooka | Don't release nodes in _remove or _rmdir, implement reclaim where to do it.
|
1.2 | 11-Feb-2007 |
pooka | * sprinkle some comments to obvious XXX places * remove outdated #ifdef from write * return 0 if unmount is not supported instead of ENOSYS
|
1.1 | 11-Feb-2007 |
agc | Add an implementation of the file system in userspace functionality, based on top of libpuffs. This version is still barebones and incomplete, but will benefit from others working on it, rather than just me.
The option code has still to be implemented, but this gets far enough to run hellofs (from the fuse web page):
% priv ./hellofs ~/hellofs/mnt & % l ~/hellofs/mnt total 2 drwxr-xr-x 2 root wheel 0 Jan 1 1970 . drwxr-xr-x 4 agc agc 512 Feb 9 18:05 .. -r--r--r-- 1 root wheel 13 Jan 1 1970 hello % cat ~/hellofs/mnt/hello Hello World! % df ~/hellofs/mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/dk0 28101396 18946682 7749646 70% / kernfs 1 1 0 100% /kern procfs 4 4 0 100% /proc ptyfs 1 1 0 100% /dev/pts puffs:refuse:hellofs 28101396 18946682 7749646 70% /home/agc/hellofs/mnt % mount -v -v ... mount: mount_puffs not found for /home/agc/hellofs/mnt puffs:refuse:hellofs on /home/agc/hellofs/mnt type puffs (nosuid, nodev, fsid: 0xcb01/0x6acb, reads: sync 0 async 0, writes: sync 0 async 0) %
This code is not enabled by default. Yet.
|
1.73.4.2 | 18-Jul-2007 |
pooka | Don't stay on the foreground and dump operations by default.
XXX: someone(tm) should make it possible to set PUFFS_OPFLAG_DUMP using the fuse options framework
|
1.73.4.1 | 18-Jul-2007 |
pooka | file refuse.c was added on branch matt-mips64 on 2007-07-18 22:05:42 +0000
|
1.75.2.3 | 23-Mar-2008 |
matt | sync with HEAD
|
1.75.2.2 | 09-Jan-2008 |
matt | sync with HEAD
|
1.75.2.1 | 06-Nov-2007 |
matt | sync with HEAD
|
1.88.6.1 | 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
1.89.4.3 | 13-Jan-2013 |
bouyer | Pull up following revision(s) (requested by tron in ticket #1836): lib/librefuse/refuse.c: revision 1.96 via patch FUSE seems to allow short writes without errors but PUFFS doesn't. Work around this by returning ENOSPC in case of a short write to avoid protocol errors. This change is based on problem analysis provided by Antti Kantee. This fixes PR lib/45129 by myself.
|
1.89.4.2 | 08-Aug-2011 |
riz | Pull up following revision(s) (requested by tron in ticket #1650): lib/librefuse/refuse.c: revision 1.94 Call the FUSE init operation before we try to access the file-system. This prevents a crash in "fuse_ext2" which I previously worked around with a patch.
|
1.89.4.1 | 08-Aug-2011 |
riz | Pull up following revision(s) (requested by tron in ticket #1648): lib/librefuse/refuse.c: revision 1.93 Don't ignore "userdata" argument in "fuse_main_real". This can crash a FUSE file-system that passes a non-NULL argument here.
|
1.91.2.1 | 13-May-2009 |
jym | Sync with HEAD.
Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
|
1.94.2.2 | 23-Jan-2013 |
yamt | sync with head
|
1.94.2.1 | 17-Apr-2012 |
yamt | sync with head
|
1.95.6.1 | 25-Feb-2013 |
tls | resync with head
|
1.95.2.1 | 07-Jan-2013 |
riz | Pull up following revision(s) (requested by tron in ticket #772): lib/librefuse/refuse.c: revision 1.96 FUSE seems to allow short writes without errors but PUFFS doesn't. Work around this by returning ENOSPC in case of a short write to avoid protocol errors. This change is based on problem analysis provided by Antti Kantee. This fixes PR lib/45129 by myself.
|
1.96.12.1 | 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.98.14.2 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.98.14.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.1 | 21-Nov-2024 |
riastradh | branches: 1.1.4; librefuse: Add expected symbols list.
PR lib/58838: shared libraries in base should all have expsym lists
|
1.1.4.2 | 02-Aug-2025 |
perseant | Sync with HEAD
|
1.1.4.1 | 21-Nov-2024 |
perseant | file refuse.expsym was added on branch perseant-exfatfs on 2025-08-02 05:54:57 +0000
|
1.3 | 23-Jan-2022 |
rillig | librefuse: fix lint warnings about void function returning a value
lib/librefuse/refuse_compat.c(155): error: void function fuse_unmount cannot return value [213] lib/librefuse/refuse/v30.c(57): error: void function fuse_destroy_v30 cannot return value [213]
|
1.2 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1 | 22-Jan-2022 |
pho | Correct the wrong prototype of fuse_daemonize(3) while retaining ABI compatibility
|
1.2 | 29-Jan-2022 |
tnn | librefuse: default_log_func is __printflike
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement logging API appeared on FUSE 3.7
|
1.4 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.3 | 22-Jan-2022 |
pho | Support the FUSE option -ho
It is supposed to print a help message without the usage line. Although it is deprecated and has been removed as of FUSE 3.0, filesystems in the wild still use it.
|
1.2 | 04-Dec-2021 |
pho | librefuse: Preparation of a proper API versioning; no more #ifdef woes in user code
The goal is to fully support FUSE API version 3.0 while maintaining API/ABI compatibility with code written for 2.6 (or even older).
* <fuse.h> now emits a compiler warning if it's included without defining FUSE_USE_VERSION. It had been silently defaulted to the latest supported version prior to this change. This is permissive compared to the original FUSE, as it emits an error instead.
* <fuse.h> now emits a warning if FUSE_USE_VERSION is higher than what can be provided.
* Added a macro FUSE_MAKE_VERSION(maj, min). It was missing from librefuse <fuse.h>.
No actual API updates have been made (yet).
|
1.1 | 20-Nov-2016 |
pho | branches: 1.1.2; fuse_lowlevel.h: new file, currently only contains fuse_parse_cmdline(3) and struct fuse_cmdline_opts
|
1.1.2.2 | 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.1.2.1 | 20-Nov-2016 |
pgoyette | file refuse_lowlevel.c was added on branch pgoyette-localcount on 2017-01-07 08:56:04 +0000
|
1.23 | 22-Jan-2022 |
pho | Increase the warning level to spot more mistakes
|
1.22 | 04-Dec-2021 |
pho | librefuse: Preparation of a proper API versioning; no more #ifdef woes in user code
The goal is to fully support FUSE API version 3.0 while maintaining API/ABI compatibility with code written for 2.6 (or even older).
* <fuse.h> now emits a compiler warning if it's included without defining FUSE_USE_VERSION. It had been silently defaulted to the latest supported version prior to this change. This is permissive compared to the original FUSE, as it emits an error instead.
* <fuse.h> now emits a warning if FUSE_USE_VERSION is higher than what can be provided.
* Added a macro FUSE_MAKE_VERSION(maj, min). It was missing from librefuse <fuse.h>.
No actual API updates have been made (yet).
|
1.21 | 01-Dec-2021 |
pho | Revert my previous change to struct fuse_opt
I should have thought twice before commiting it. Of course changing the layout of a struct breaks ABI compatibility. Change the offset back to fixed 32 bits.
|
1.20 | 01-Dec-2021 |
pho | Use correct types for the fields of struct fuse_opt
This change shouldn't make any behavioral differences in reality, but compilers these days dislike converting -1U to int32_t implicitly, which is indeed understandable.
|
1.19 | 30-Oct-2021 |
nia | refuse(3): Simplify reallocation logic with reallocarr.
|
1.18 | 16-Nov-2016 |
pho | Major rework of fuse_opt_parse(3) so that it supports all the functionality of the original function
|
1.17 | 15-Nov-2016 |
pho | fuse_opt_match(3): Support every form of templates, not just the simple strcmp case
Also it should return 1 for successful matches, not the way around.
|
1.16 | 14-Nov-2016 |
pho | Implement missing fuse_opt_add_opt(3) and fuse_opt_add_opt_escaped(3)
|
1.15 | 01-Mar-2011 |
soda | branches: 1.15.26; fuse_opt_parse() was using uninitialized struct fuse_opt_option::data, this bug made fuse_opt_proc_t not work, if it used first ``data'' argument, and might cause memory corruption even.
|
1.14 | 19-Jan-2009 |
lukem | branches: 1.14.4; fix -Wsign-compare issue
|
1.13 | 05-Nov-2007 |
pooka | branches: 1.13.12; Header cleanup: don't need defs.h to do a few includes for us. Also, use #include <> for global headers instead of #include "".
|
1.12 | 06-Oct-2007 |
xtraeme | Use a two clause license for all the code I contributed.
The envsys code will be changed later.
|
1.11 | 17-May-2007 |
christos | branches: 1.11.4; More fixes: - make sure that the args array is NULL terminated. - make sure argc is initialized and argv is set to NULL after freeing. - make the deep copy function an opt interface function.
|
1.10 | 16-May-2007 |
christos | - Always check strdup return. For now we are lazy and bail instead of cleaning up. - Use malloc and free instead of macros, delete macros. - Merge the two copies of deep copy and free args that were slightly buggy into one and use that one.
XXX: Lots of ints should be size_t. XXX: Bailing on error is not a good thing for a library. XXX: Defs.h should be eliminated completely. Not all files need all the headers.
|
1.9 | 17-Apr-2007 |
agc | The error return code from fuse_opt_add_arg() and fuse_opt_insert_arg() is actually -1, not 1. Fix the broken sewing machine, and make it sew.
|
1.8 | 17-Apr-2007 |
xtraeme | Forgot to move the prototype in a comment to the correct place.
|
1.7 | 17-Apr-2007 |
xtraeme | Sync comments with reality.
|
1.6 | 17-Apr-2007 |
xtraeme | Wrap long lines.
|
1.5 | 16-Apr-2007 |
agc | Flesh out the args management a bit more:
+ put some meat into the add_arg and insert_arg functions + implement the free_args function + use 0 and 1 return values, instead of EXIT_SUCCESS and EXIT_FAILURE, in internal functions (they bear no relation to shell exit values) + deep copy argument structures in refuse.c - we need to do this because some FUSE file systems attempt to obliterate^Wcloak the argument vector "for security reasons" + a side benefit of this is that we get the specific refuse file system name back again:
[10:48:43] agc@inspiron1300 ...src/lib/librefuse 38 > df Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/dk0 28101396 19318530 7377798 72% / kernfs 1 1 0 100% /kern procfs 4 4 0 100% /proc ptyfs 1 1 0 100% /dev/pts puffs:refuse:id3fs 0 0 0 100% /mnt [10:48:51] agc@inspiron1300 ...src/lib/librefuse 39 >
|
1.4 | 13-Mar-2007 |
agc | Revert the most recent changes I made - they weren't ready for primetime.
|
1.3 | 13-Mar-2007 |
agc | + Only use EXIT_SUCCESS and EXIT_FAILURE for the return code to the shell in the fuse_opt functions
+ add new debugging functions: + __fuse_debug(), which is used to set and retrieve the debugging level, so that debugging information can be turned on and off from the user-level filesystem, and + __fuse_pargs(), which prints out an argv vector
+ put the comment about pu_privdata back with the code it references
+ put the code to place the refuse name back into the fuse_new() function - we have access to all the arguments there.
+ specifically include <fuse_opt.h> in <fuse.h> - this would seem to be what FUSE itself does, judging by the number of fuse-based filesystems I've patched to include <fuse_opt.h> specifically
+ do away with the forward reference to struct fuse_args in fuse.h, since it is defined just after the forward reference without being referenced in between
+ fill in the missing refuse_opt args functionality - add an arg to the args structure in fuse_opt_add_arg() and fuse_opt_insert_arg(), and free allocated memory in fuse_opt_free_args().
+ get rid of spurious forward declarations and prototypes.
+ if REFUSE_INHERIT_FS_CHARACTERISTICS is defined when refuse is built, file systems inherit the vfs characteristics of their mountpoints. The default value is NOT to inherit the vfs characteristics.
+ perform a deep copy of the fuse_args structure in fuse_mount() - this is so that existing FUSE filesystems still DTRT when arguments are zeroed out.
|
1.2 | 28-Feb-2007 |
agc | Minor cosmetic changes to clean up some lint.
|
1.1 | 28-Feb-2007 |
xtraeme | * Move fuse_opt* defs and prototypes into fuse_opt.h. * Move fuse_opt* funcs from refuse.c into refuse_opt.c.
Implement fuse_opt_parse() and fuse_opt_match(). And make the other functions just dummy, always returning 0 (I added debugging printfs to see what the application is trying to do).
For now there are two things that do not work in fuse_opt:
* options accepting arguments, i.e -otimeout=%u or -ofile=%s. * options without arguments are not enabled, just parsed.
At least now curlftpfs works, even with verbose mode! :-)
Ok'ed by pooka.
|
1.11.4.1 | 06-Nov-2007 |
matt | sync with HEAD
|
1.13.12.1 | 20-Mar-2011 |
bouyer | Pull up following revision(s) (requested by soda in ticket #1568): lib/librefuse/refuse_opt.c: revision 1.15 fuse_opt_parse() was using uninitialized struct fuse_opt_option::data, this bug made fuse_opt_proc_t not work, if it used first ``data'' argument, and might cause memory corruption even.
|
1.14.4.1 | 05-Mar-2011 |
bouyer | Sync with HEAD
|
1.15.26.1 | 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement FUSE session API and its signal handling functionality
|
1.3 | 21-May-2010 |
pooka | bump major of libs NEEDING libpuffs
|
1.2 | 11-Jan-2009 |
christos | bump shared libraries.
|
1.1 | 11-Feb-2007 |
agc | Add an implementation of the file system in userspace functionality, based on top of libpuffs. This version is still barebones and incomplete, but will benefit from others working on it, rather than just me.
The option code has still to be implemented, but this gets far enough to run hellofs (from the fuse web page):
% priv ./hellofs ~/hellofs/mnt & % l ~/hellofs/mnt total 2 drwxr-xr-x 2 root wheel 0 Jan 1 1970 . drwxr-xr-x 4 agc agc 512 Feb 9 18:05 .. -r--r--r-- 1 root wheel 13 Jan 1 1970 hello % cat ~/hellofs/mnt/hello Hello World! % df ~/hellofs/mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/dk0 28101396 18946682 7749646 70% / kernfs 1 1 0 100% /kern procfs 4 4 0 100% /proc ptyfs 1 1 0 100% /dev/pts puffs:refuse:hellofs 28101396 18946682 7749646 70% /home/agc/hellofs/mnt % mount -v -v ... mount: mount_puffs not found for /home/agc/hellofs/mnt puffs:refuse:hellofs on /home/agc/hellofs/mnt type puffs (nosuid, nodev, fsid: 0xcb01/0x6acb, reads: sync 0 async 0, writes: sync 0 async 0) %
This code is not enabled by default. Yet.
|
1.5 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.4 | 22-Jan-2022 |
pho | lib/librefuse: Add support for legacy types and functions
|
1.3 | 22-Jan-2022 |
pho | lib/librefuse: Add stub functions for FUSE polling API
|
1.2 | 22-Jan-2022 |
pho | lib/librefuse: Implement data buffer API appeared on FUSE 2.9
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement FUSE session API and its signal handling functionality
|
1.2 | 22-Jan-2022 |
pho | Use sysconf(_SC_PAGESIZE) instead of PAGE_SIZE
It broke build on platforms where PAGE_SIZE was not defined in <machine/vmparam.h>.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement data buffer API appeared on FUSE 2.9
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement data buffer API appeared on FUSE 2.9
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.2 | 14-Jul-2023 |
pho | refuse(3): Fix broken 3.5, 3.6, and 3.7 APIs
These API versions were completely missing from refuse/fs.c. User programs could request these versions and build fine, but they couldn't even initialize a FUSE context at run time.
|
1.1 | 22-Jan-2022 |
pho | branches: 1.1.2; lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1.2.1 | 14-Jul-2023 |
martin | Pull up following revision(s) (requested by pho in ticket #234):
lib/librefuse/refuse/fs.c: revision 1.2
refuse(3): Fix broken 3.5, 3.6, and 3.7 APIs
These API versions were completely missing from refuse/fs.c. User programs could request these versions and build fine, but they couldn't even initialize a FUSE context at run time.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Add support for legacy types and functions
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Add support for legacy types and functions
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Add stub functions for FUSE polling API
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Add stub functions for FUSE polling API
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement FUSE session API and its signal handling functionality
|
1.2 | 11-Feb-2024 |
andvar | Fix few more typos in comments and log message: s/butoon/button/ s/BUTTOM/BOTTOM/ s/communicaiton/communication/ s/recevice/receive/ s/regiion/region/
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement FUSE session API and its signal handling functionality
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.2 | 23-Jan-2022 |
rillig | librefuse: fix lint warnings about void function returning a value
lib/librefuse/refuse_compat.c(155): error: void function fuse_unmount cannot return value [213] lib/librefuse/refuse/v30.c(57): error: void function fuse_destroy_v30 cannot return value [213]
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|
1.1 | 22-Jan-2022 |
pho | lib/librefuse: Implement all sorts of compat tweaks to appease various file systems
ReFUSE now supports all the FUSE API variants from FUSE 1.1 to FUSE 3.10. Sorry for the freaking giant patch. I could not break it down any further.
|