On Sat, Jun 28, 2025 at 05:28:25PM +0100, Al Viro wrote: > On Sat, Jun 28, 2025 at 08:58:49AM +0100, Al Viro wrote: > > Yes, it's a flagday change. Compiler will immediately catch any place > > that needs to be converted, and D/f/porting.rst part should be clear > > enough. > > > > How about something like the following (completely untested), on top of -rc3? > > Objections, anyone? > > After fixing a braino (s/QSTR_INIT/QSTR_LEN/) it even builds and seems to work... While we are at it, there are at least some open-coded instances. IMO that part of do_nfs4_mount() is better this way, and I wonder if we should add vfs_parse_fs_printf(fc, key, fmt, ...) as well... diff --git a/fs/nfs/nfs4super.c b/fs/nfs/nfs4super.c index b29a26923ce0..92ac12cee26e 100644 --- a/fs/nfs/nfs4super.c +++ b/fs/nfs/nfs4super.c @@ -158,12 +158,6 @@ static int do_nfs4_mount(struct nfs_server *server, .dirfd = -1, }; - struct fs_parameter param_fsc = { - .key = "fsc", - .type = fs_value_is_string, - .dirfd = -1, - }; - if (IS_ERR(server)) return PTR_ERR(server); @@ -181,15 +175,7 @@ static int do_nfs4_mount(struct nfs_server *server, root_ctx->server = server; if (ctx->fscache_uniq) { - len = strlen(ctx->fscache_uniq); - param_fsc.size = len; - param_fsc.string = kmemdup_nul(ctx->fscache_uniq, len, GFP_KERNEL); - if (param_fsc.string == NULL) { - put_fs_context(root_fc); - return -ENOMEM; - } - ret = vfs_parse_fs_param(root_fc, ¶m_fsc); - kfree(param_fsc.string); + ret = vfs_parse_fs_string(root_fc, "fsc", ctx->fscache_uniq); if (ret < 0) { put_fs_context(root_fc); return ret;