On Tue, 25 Mar 2025 at 13:47:33 +0000, Simon McVittie wrote:
I also wonder whether it would be better for fuse_set_feature_flag() and fuse_unset_feature_flag() to set/unset the relevant flag in conn->want *and* conn->want_ext, if it happens to be below the 32-bit boundary. That way, "fuse_lower_32_bits(conn->want_ext) != conn->want" would usually be false and we would not have any inconsistency.
Unfortunately fuse_set_feature_flag() and fuse_unset_feature_flag() are inlined (somewhat defeating the purpose of encapsulating access to struct members...) so if this turns out to be part of a solution, then gvfs and all other callers will need binNMUs to pick up that change.
smcv