History log of /netbsd/lib/librefuse/refuse.c (Results 1 – 25 of 114)
Revision Date Author Comments
# 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


12345