git: Fix null dereference bug in fuse and re-enable it.

Tomohiro Kusumi kusumi.tomohiro at gmail.com
Thu Mar 14 00:02:46 PDT 2024


2024年3月13日(水) 22:53 Matthew Dillon <dillon at backplane.com>:
>
> I was hoping Kyle would take it up.   I don't see any particular issues that would make fuse support difficult, to be honest.  I would be happy to clean up the data I/O paths.

IIRC, another bug by design is that the current implementation only
allows 1 open fd per file / inode.
I recall this is (or was) also the case with FUSE implementation on
some of other BSD variants.

>
> File handles appear to currently be implemented as (directory, filehandle) tuples.  If we need to add another layer of indirection to struct fuse_node to a new "struct fuse_inode" structure (indexed by inode number) to take care of hard links, that would be fairly easy.
>
> Similarly I see that the read support bypasses the buffer cache and write support is disabled, as well as BMAP and STRATEGY.  But those don't have to be implemented that way at all.  There is no impediment to implementing the I/O through the buffer cache and issuing the RPCs via the STRATEGY function.  We might need a dedicated I/O thread to help with that, but that's it.
>
> Basically READ, WRITE, and BMAP can literally just lift a chunk of the tmpfs code, and STRATEGY runs the actual RPCs to the user process.   I think I could knock the main infrastructure out in a day.
>
> -Matt


More information about the Commits mailing list