[Bug 291064] locking bug in fuse_vnop_read()

[email protected]
Newsgroups gmane.os.freebsd.devel.file-systems
Message-ID <[email protected]/bugzilla/>
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=291064

Konstantin Belousov <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #8 from Konstantin Belousov <[email protected]> ---
It seems that fusefs tries to modify the internal attr cache on read, and cache
correctly asserts that the vnode is exclusively locked.  While it is not for
reads.

NFS have has a similar issue, and fixing it was not easy.

Try the following.  It should cover the issue at hand, but might cause
something
else, I have no idea about the fusefs code. (And the comment is completely
wrong).

diff --git a/sys/fs/fuse/fuse_node.c b/sys/fs/fuse/fuse_node.c
index 742dc66bcafc..bc47562d79db 100644
--- a/sys/fs/fuse/fuse_node.c
+++ b/sys/fs/fuse/fuse_node.c
@@ -264,9 +264,11 @@ fuse_vnode_alloc(struct mount *mp,
                *vpp = NULL;
                return (err);
        }
+#if 0
        /* Disallow async reads for fifos because UFS does.  I don't know why
*/
        if (data->dataflags & FSESS_ASYNC_READ && vtyp != VFIFO)
                VN_LOCK_ASHARE(*vpp);
+#endif

        vn_set_state(*vpp, VSTATE_CONSTRUCTED);
        err = vfs_hash_insert(*vpp, fuse_vnode_hash(nodeid), LK_EXCLUSIVE,

-- 
You are receiving this mail because:
You are the assignee for the bug.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.