Module Name:    src
Committed By:   pho
Date:           Sat Jan 22 07:35:26 UTC 2022

Modified Files:
        src/lib/libpuffs: Makefile puffs.3 puffs.c puffs_priv.h

Log Message:
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.


To generate a diff of this commit:
cvs rdiff -u -r1.26 -r1.27 src/lib/libpuffs/Makefile
cvs rdiff -u -r1.66 -r1.67 src/lib/libpuffs/puffs.3
cvs rdiff -u -r1.127 -r1.128 src/lib/libpuffs/puffs.c
cvs rdiff -u -r1.45 -r1.46 src/lib/libpuffs/puffs_priv.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Reply via email to