#
0183fe03 |
| 22-Jan-2022 |
pho <pho@NetBSD.org> |
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 co
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.
show more ...
|
#
9ad9f13b |
| 22-Jan-2022 |
pho <pho@NetBSD.org> |
Zero-clear the fuse_context in fuse_destroy(3)
|
#
b7be54fb |
| 22-Jan-2022 |
pho <pho@NetBSD.org> |
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.
|
#
5d144c59 |
| 22-Jan-2022 |
pho <pho@NetBSD.org> |
Implement some missing functions that are part of the API
|
#
6f080adf |
| 22-Jan-2022 |
pho <pho@NetBSD.org> |
Correct the wrong prototype of fuse_daemonize(3) while retaining ABI compatibility
|
#
a09c5ca9 |
| 22-Jan-2022 |
pho <pho@NetBSD.org> |
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_{MAJ
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.
show more ...
|
#
24227f86 |
| 22-Jan-2022 |
pho <pho@NetBSD.org> |
Implement a dummy pathconf() which always returns EINVAL
|
#
2ef6153f |
| 22-Jan-2022 |
pho <pho@NetBSD.org> |
Do not call fuse_operations.getattr() before initializing filesystem
|
#
3cad7dc6 |
| 22-Jan-2022 |
pho <pho@NetBSD.org> |
Increase the warning level to spot more mistakes
|
#
d15edff8 |
| 22-Jan-2022 |
pho <pho@NetBSD.org> |
lib/librefuse: Add support for legacy types and functions
|
#
fc35b32c |
| 22-Jan-2022 |
pho <pho@NetBSD.org> |
lib/librefuse: Implement FUSE session API and its signal handling functionality
|
#
87bdd271 |
| 04-Dec-2021 |
pho <pho@NetBSD.org> |
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.
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).
show more ...
|
#
45a48eb1 |
| 30-Nov-2021 |
pho <pho@NetBSD.org> |
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_
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.
show more ...
|
#
a2d0d5b0 |
| 23-Sep-2019 |
christos <christos@NetBSD.org> |
Restore binary compatibility by using the statvfs90 structure internally.
|
#
527b67ee |
| 10-Apr-2019 |
maya <maya@NetBSD.org> |
Use the equivalent FUSE_VERSION. Probably a more adequately named macro for this
|
#
eef315f0 |
| 10-Apr-2019 |
maya <maya@NetBSD.org> |
provide fuse_version
|
#
dfa1c7ef |
| 20-Nov-2016 |
pho <pho@NetBSD.org> |
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_daemon
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.
show more ...
|
#
47d5f787 |
| 17-Nov-2016 |
pho <pho@NetBSD.org> |
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
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.
show more ...
|
#
90d58eb9 |
| 30-Dec-2012 |
tron <tron@NetBSD.org> |
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 pro
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.
show more ...
|
#
8b51b50b |
| 24-Nov-2011 |
manu <manu@NetBSD.org> |
Set eofflag in puffs_fuse_node_readdir() from librefuse.
From Evgeniy Ivanov <lolkaantimat@gmail.com>
|
#
0d61a28f |
| 09-Jul-2011 |
tron <tron@NetBSD.org> |
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.
|
#
b01d0afb |
| 09-Jul-2011 |
tron <tron@NetBSD.org> |
Don't ignore "userdata" argument in "fuse_main_real". This can crash a FUSE file-system that passes a non-NULL argument here.
|
#
16ed711e |
| 05-Mar-2009 |
msaitoh <msaitoh@NetBSD.org> |
fix typo (s/stucture/structure/)
|
#
db4cbbf2 |
| 26-Jan-2009 |
lukem <lukem@NetBSD.org> |
sign-compare fix
|
#
6bb2880e |
| 19-Jan-2009 |
lukem <lukem@NetBSD.org> |
fix -Wsign-compare issue
|