Link [ NetBSD | NetBSD OpenGrok source search | PR fulltext-search | Summary of daily snapshot builds | history of daily build result | pkgsrc commit viewer ]


   
        usage: [branch:branch] [user:user] [path@revision] keyword [... [-excludekeyword [...]]] (e.g. branch:MAIN sys/arch/arm, if_wm.c@1.234 )




switch to index mode

recent branches: MAIN (3h)  netbsd-8 (5d)  netbsd-10 (5d)  netbsd-9 (11d)  thorpej-ifq (175d)  thorpej-altq-separation (178d) 

2024-05-10 07:13:48 UTC Now

2024-05-09 12:41:08 UTC MAIN commitmail json YAML

2024-05-09 12:10:00 UTC MAIN commitmail json YAML

port-arm/58194: Resurrect vmt(4) from bitrot

On this architecture vmt(4) used to search for a node "/hypervisor" in the
FDT and probed the VMware hypervisor call only when the node was
found. However, things appear to have changed and VMware no longer provides
the FDT node.

Since vmt(4) doesn't actually need to read anything from FDT, and the
hypervisor call logically resides in virtual CPUs themselves, it would be
better to attach it directly to cpu, just like how it's probed on x86.

(pho)

2024-04-22 07:24:22 UTC MAIN commitmail json YAML

Add a test for kern/58149

aarch64: Cannot return from a signal handler if SP was misaligned when the signal arrived

(pho)

2023-07-30 09:23:22 UTC MAIN commitmail json YAML

hack(6): Fix a segfault that occurs when ASLR is enabled

Prior to this change, savenames() would store "objects" in save files as a
blob, and restnames() would load it and overwrite "objects". But since
objclass::oc_name and oc_descr are pointers to string constants, they would
be invalid when the next time the process is spawned, and opening the
inventory would crash by dereferencing invalid pointers.

(pho)

2023-07-14 02:43:50 UTC MAIN commitmail json YAML

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.

(pho)

2023-06-27 01:19:44 UTC MAIN commitmail json YAML

callout(9): Delete the unused member cc_cancel from struct callout_cpu

I see no reason why it should be there, and believe its a leftover from
some old code.

(pho)

2023-06-27 01:17:43 UTC MAIN commitmail json YAML

callout(9): Tidy up the condition for "callout is running on another LWP"

No functional changes.

(pho)

2023-06-27 01:15:22 UTC MAIN commitmail json YAML

callout(9): Fix panic() in callout_destroy() (kern/57226)

The culprit was callout_halt(). "(c->c_flags & CALLOUT_FIRED) != 0" wasn't
the correct way to check if a callout is running. It failed to wait for a
running callout to finish in the following scenario:

1. cpu0 initializes a callout and schedules it.
2. cpu0 invokes callout_softlock() and fires the callout, setting the flag
  CALLOUT_FIRED.
3. The callout invokes callout_schedule() to re-schedule itself.
4. callout_schedule_locked() clears the flag CALLOUT_FIRED, and releases
  the lock.
5. Before the lock is re-acquired by callout_softlock(), cpu1 decides to
  destroy the callout. It first invokes callout_halt() to make sure the
  callout finishes running.
6. But since CALLOUT_FIRED has been cleared, callout_halt() thinks it's not
  running and therefore returns without invoking callout_wait().
7. cpu1 proceeds to invoke callout_destroy() while it's still running on
  cpu0. callout_destroy() detects that and panics.

(pho)

2022-01-22 13:25:55 UTC MAIN commitmail json YAML

Use sysconf(_SC_PAGESIZE) instead of PAGE_SIZE

It broke build on platforms where PAGE_SIZE was not defined in
<machine/vmparam.h>.

(pho)

2022-01-22 08:09:40 UTC MAIN commitmail json YAML

2022-01-22 08:07:02 UTC MAIN commitmail json YAML

Zero-clear the fuse_context in fuse_destroy(3)

(pho)

2022-01-22 08:06:21 UTC MAIN commitmail json YAML

Add some missing struct fields, structs, and constants that are part of the API

(pho)

2022-01-22 08:05:36 UTC MAIN commitmail json YAML

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.

(pho)

2022-01-22 08:03:32 UTC MAIN commitmail json YAML

Implement some missing functions that are part of the API

(pho)

2022-01-22 08:02:50 UTC MAIN commitmail json YAML

Correct the wrong prototype of fuse_daemonize(3) while retaining ABI compatibility

(pho)

2022-01-22 08:01:51 UTC MAIN commitmail json YAML

2022-01-22 08:01:12 UTC MAIN commitmail json YAML

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.

(pho)

2022-01-22 08:00:17 UTC MAIN commitmail json YAML

Implement a dummy pathconf() which always returns EINVAL

(pho)

2022-01-22 07:59:33 UTC MAIN commitmail json YAML

Do not call fuse_operations.getattr() before initializing filesystem

(pho)

2022-01-22 07:58:32 UTC MAIN commitmail json YAML

2022-01-22 07:57:31 UTC MAIN commitmail json YAML

2022-01-22 07:56:16 UTC MAIN commitmail json YAML

2022-01-22 07:54:57 UTC MAIN commitmail json YAML

2022-01-22 07:53:06 UTC MAIN commitmail json YAML

2022-01-22 07:39:22 UTC MAIN commitmail json YAML

lib/librefuse: Implement logging API appeared on FUSE 3.7

(pho)

2022-01-22 07:38:45 UTC MAIN commitmail json YAML

lib/librefuse: Implement logging API appeared on FUSE 3.7

(pho)

2022-01-22 07:35:26 UTC MAIN commitmail json YAML

Allow calling puffs_mount(3) before puffs_daemon(3)

puffs_daemon(3) creates a pipe before forking, and the parent process
waits for the child to either complete puffs_mount(3) or fail. If a
user calls puffs_daemon(3) after puffs_mount(3), the function
deadlocks. While this error-reporting functionality is really a nice
thing to have, deadlocking is not great. If the filesystem has already
been mounted, puffs_mount(3) should just daemonize the process and
return.

This became an issue because fuse_daemonize(3) in FUSE API had no such
requirement and some FUSE filesystems in the wild suffered deadlocks.

(pho)

2021-12-04 06:42:39 UTC MAIN commitmail json YAML

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).

(pho)

2021-12-03 17:12:17 UTC MAIN commitmail json YAML

Use size_t in place of voff_t in puffs_setrootinfo(3)

Chuck Silvers pointed out that voff_t was also supposed to be
kernel-only. The correct type to use in userland would be off_t, but
since changing vsize_t to either voff_t or off_t is an ABI change on
32-bit platforms, we use size_t knowing that it is technically
incorrect.

(pho)

2021-12-03 14:00:59 UTC MAIN commitmail json YAML

Avoid using register_t or vsize_t in <puffs.h>

<puffs.h> is a user-space header, and should not use any of
kernel-only types. It's not reasonable to require user-land
filesystems to #define _KERNTYPES.

(pho)

2021-12-03 13:08:10 UTC MAIN commitmail json YAML

Avoid using register_t in <fs/puffs/puffs_msgif.h>

The purpose of this header file is to interface between the
kernel-space and user-space, and is #include'd by a user-space header
<puffs.h>. It should therefore not use any of kernel-only types, as
it's not reasonable to require user-land filesystems to #define
_KERNTYPES.

(pho)

2021-12-01 14:17:51 UTC MAIN commitmail json YAML

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.

(pho)

2021-12-01 13:51:33 UTC MAIN commitmail json YAML

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.

(pho)

2021-11-30 12:13:12 UTC MAIN commitmail json YAML

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.

(pho)

2021-11-23 17:54:08 UTC MAIN commitmail json YAML

Make LINUX_FIOCLEX and LINUX_FIONCLEX work

These ioctls were declared in linux_termios.h but were not actually
handled.

(pho)

2016-11-23 14:33:29 UTC MAIN commitmail json YAML

Major rework on mount_puffs(8) so that it can actually start file servers

Now you can do
  # mount_puffs -o rdonly rot13fs#/home/foo /mnt/rot13

or in fstab
  rot13fs#/home/foo  /mnt/rot13  puffs  rdonly

to start rot13fs with arguments identical to
  # rot13fs -o rdonly /home/foo /mnt/rot13

(pho)

2016-11-20 13:28:32 UTC MAIN commitmail json YAML

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.

(pho)

2016-11-20 13:26:28 UTC MAIN commitmail json YAML

fuse_lowlevel.h: new file, currently only contains fuse_parse_cmdline(3) and struct fuse_cmdline_opts

(pho)

2016-11-17 14:20:26 UTC MAIN commitmail json YAML

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.

(pho)

2016-11-16 16:11:42 UTC MAIN commitmail json YAML

Major rework of fuse_opt_parse(3) so that it supports all the functionality of the original function

(pho)

2016-11-15 00:37:18 UTC MAIN commitmail json YAML

2016-11-15 00:34:19 UTC MAIN commitmail json YAML

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.

(pho)

2016-11-15 00:32:42 UTC MAIN commitmail json YAML

2016-11-14 17:48:57 UTC MAIN commitmail json YAML

Add missing macros

(pho)

2016-11-14 17:19:29 UTC MAIN commitmail json YAML

2016-11-14 16:10:31 UTC MAIN commitmail json YAML

2016-10-13 13:04:02 UTC MAIN commitmail json YAML

PR kern/32569: Describe the sysctl variable the driver provides

(pho)

2014-01-07 04:46:02 UTC MAIN commitmail json YAML

Add pho@ to NetBSD Developers.

(pho)