On Fri, Dec 06, 2019 at 10:31:57AM -0600, Eric Sandeen wrote: > There doesn't seem to be a strong reason to have a copy of the > filesystem name string in the fs_parameter_description structure; > it's easy enough to get the name from the fs_type, and using it > instead ensures consistency across messages (for example, > vfs_parse_fs_param() already uses fc->fs_type->name for the error > messages, because it doesn't have the fs_parameter_description). Arrgh... That used to be fine. Now we have this: static int rbd_parse_param(struct fs_parameter *param, struct rbd_parse_opts_ctx *pctx) { struct rbd_options *opt = pctx->opts; struct fs_parse_result result; int token, ret; ret = ceph_parse_param(param, pctx->copts, NULL); if (ret != -ENOPARAM) return ret; token = fs_parse(NULL, rbd_parameters, param, &result); ^^^^ Cthulhu damn it... And yes, that crap used to work. Frankly, I'm tempted to allocate fs_context in there (in rbd_parse_options(), or in rbd_add_parse_args()) - we've other oddities due to that... Alternatively, we could provide __fs_parse() that would take name as a separate argument and accepted NULL fc, with fs_parse() being a wrapper for that. *grumble*