Date: Tue, 03 Sep 2019 14:07:29 -0000 From: Alan Somers <asomers@freebsd.org> To: Konstantin Belousov <kostikbel@gmail.com> Cc: src-committers <src-committers@freebsd.org>, svn-src-projects@freebsd.org Subject: Re: svn commit: r346640 - in projects/fuse2/sys: fs/fuse kern Message-ID: <CAOtMX2hYZ4haMUbQ9rceycbaVwoJ=3fQHmKT69%2BG_C1mcT3K5w@mail.gmail.com> In-Reply-To: <20190424162837.GD12936@kib.kiev.ua> References: <201904241554.x3OFsIjw024483@repo.freebsd.org> <20190424162837.GD12936@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Apr 24, 2019 at 10:28 AM Konstantin Belousov <kostikbel@gmail.com> wrote: > > On Wed, Apr 24, 2019 at 03:54:18PM +0000, Alan Somers wrote: > > Author: asomers > > Date: Wed Apr 24 15:54:18 2019 > > New Revision: 346640 > > URL: https://svnweb.freebsd.org/changeset/base/346640 > > > > Log: > > fusefs: interruptibility improvements suggested by kib > > > > * Block stop signals in fticket_wait_answer > This might be ok, but consider using VFCF_SBDRY. Like the way it's used in nfs_vfsops? > > > * Hold ps_mtx while checking signal disposition > This part is pointless, as explained before. > > > * style(9) changes > And sig_isfatal() is still there, which I consider an architectural bug. Try to think of it as a protocol bug instead. It's not ideal, but this is the way that FUSE is supposed to work. BTW, there actually is a intr/nointr mount option, but it's implemented in userland within libfuse. For FreeBSD we could patch libfuse to implement it kernel-side instead. But fixing the multi-threaded signal delivery logic would require a version of msleep that would only catch fatal signals. Is there such a thing? -Alan > > > > > PR: 346357 > > Reported by: kib > > Sponsored by: The FreeBSD Foundation > > > > Modified: > > projects/fuse2/sys/fs/fuse/fuse_ipc.c > > projects/fuse2/sys/kern/kern_sig.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOtMX2hYZ4haMUbQ9rceycbaVwoJ=3fQHmKT69%2BG_C1mcT3K5w>