This diff is modified version of @ken's patch from here:
https://docs.freebsd.org/cgi/mid.cgi?CD5FCB90-1952-4014-BBE0-1BFF1EF85E17
The difference from original is, that additional sysctl added to turn on/off extattrs namespaces.
Differential D12485
fuse.ko: Add extattrs support. fsu on Sep 24 2017, 3:31 PM. Authored by Tags None Referenced Files
Details This diff is modified version of @ken's patch from here: The difference from original is, that additional sysctl added to turn on/off extattrs namespaces. Was tested with e2fsprogs and tuxera ntfs-3g fuse drivers. Please let me know (@fsu) if you want to try it locally, because it is not so obvious how to build and install fuse fs drivers and activate extattrs functionality.
Diff Detail
Event TimelineComment Actions Please upload a diff with full context. It can be done with either the 'arc diff' tool, or creating a diff with the '-U999999' option. Thanks! Comment Actions Related good news: thanks to mandree@ , the sysutils/e2fsprogs now has a FUSEFS option to build the fuse support. Comment Actions Thanks for doing this work! Here are some mostly stylistic suggestions. Many of these comments in one place apply to all or most of the added routines. In fact, there seems to be quite a bit of shared code. Maybe some of it could be deduplicated? I didn't examine the in-place attribute list conversion at all.
Comment Actions The diff updated.
Comment Actions Thanks cem@ for the review. The problem I see with the sysctl is that we have too many of them; they are generally undocumented, and it's ultimately unlikely people will spend time on it. A default value ("fusefs" perhaps?) would be good to have. Another thing to consider, but that doesn't have any relationship with committing this patch, is if/how fuse can work in the linuxulator and if we can make the linuxulator handle extended attributes. Comment Actions Changes from v2 to v3 look mostly good! I think the main problem is it configures globally a setting that is most useful per mount. But maybe I am overestimating the number of FUSE mounts people have.
I think that already works, or just requires work on the linuxulator end (after this patch). With this change, fusefs implements the generic vnode API for extattrs.
Comment Actions I don't think currently the main consumer for ntfs driver and EAs currently don't translate very well between those. Ken's work was probably related to ceph, which like does use such attributes.
It might be that we are implementing a very old version of the fuse API/protocol. looked a bit at updating it but it wants to control locking and it may not translate at all to FreeBSD. Just a consideration for the future. I will be glad to approve the next iteration of this patch. Comment Actions FWIW, I haven't reviewed fuse_xattrlist_convert at all because it looks "complicated" and still have hesitations about doing it in-place.
Comment Actions
Comment Actions I don't see another alternative. FWIW, I asked Fedor to look at ken's patch because he has done essentially the same for ext2/3/4. Comment Actions I think this is a sensible approach. We can always put it back in if there is a reasonable usecase. I think it looks good but Fedor will be on vacation so we can still think it over for a week or two. Comment Actions My suggestion is to use separate input and output buffers. Just removes some things that can go wrong rewriting in place. Ok.
Comment Actions
Comment Actions We lost the context again, but that's ok. Looks functionally good to me. Some stylistic nits below, then it is ready to commit. :-)
Comment Actions Everything noticed above will be fixed before commit. |