From: Christoph Hellwig <hch@lst.de>
To: Kari Argillander <kari.argillander@gmail.com>
Cc: "Konstantin Komarov" <almaz.alexandrovich@paragon-software.com>,
"Christoph Hellwig" <hch@lst.de>,
ntfs3@lists.linux.dev, linux-kernel@vger.kernel.org,
linux-fsdevel@vger.kernel.org, "Pali Rohár" <pali@kernel.org>,
"Matthew Wilcox" <willy@infradead.org>
Subject: Re: [RFC PATCH 1/4] fs/ntfs3: Use new api for mounting
Date: Mon, 16 Aug 2021 14:36:19 +0200 [thread overview]
Message-ID: <20210816123619.GB17355@lst.de> (raw)
In-Reply-To: <20210816024703.107251-2-kari.argillander@gmail.com>
> +/*
> + * ntfs_load_nls
> + *
No need to state the function name here.
> + * Load nls table or if @nls is utf8 then return NULL because
> + * nls=utf8 is totally broken.
> + */
> +static struct nls_table *ntfs_load_nls(char *nls)
> +{
> + struct nls_table *ret;
> +
> + if (!nls)
> + return ERR_PTR(-EINVAL);
> + if (strcmp(nls, "utf8"))
> + return NULL;
> + if (strcmp(nls, CONFIG_NLS_DEFAULT))
> + return load_nls_default();
> +
> + ret = load_nls(nls);
> + if (!ret)
> + return ERR_PTR(-EINVAL);
> +
> + return ret;
> +}
This looks like something quite generic and not file system specific.
But I haven't found time to look at the series from Pali how this all
fits together.
> +// clang-format off
Please don't use C++ comments. And we also should not put weird
formatter annotations into the kernel source anyway.
> +static void ntfs_default_options(struct ntfs_mount_options *opts)
> {
> opts->fs_uid = current_uid();
> opts->fs_gid = current_gid();
> + opts->fs_fmask_inv = ~current_umask();
> + opts->fs_dmask_inv = ~current_umask();
> + opts->nls = ntfs_load_nls(CONFIG_NLS_DEFAULT);
> +}
This function seems pretty pointless with a single trivial caller.
> +static int ntfs_fs_parse_param(struct fs_context *fc, struct fs_parameter *param)
Please avoid the overly long line.
> + break;
> + case Opt_showmeta:
> + opts->showmeta = result.negated ? 0 : 1;
> + break;
> + case Opt_nls:
> + unload_nls(opts->nls);
> +
> + opts->nls = ntfs_load_nls(param->string);
> + if (IS_ERR(opts->nls)) {
> + return invalf(fc, "ntfs3: Cannot load nls %s",
> + param->string);
> }
So instead of unloading here, why not set keep a copy of the string
in the mount options structure and only load the actual table after
option parsing has finished?
> + struct ntfs_mount_options *new_opts = fc->s_fs_info;
Does this rely on the mount_options being the first member in struct
ntfs_sb_info? If so that is a landmine for future changes.
> +/*
> + * Set up the filesystem mount context.
> + */
> +static int ntfs_init_fs_context(struct fs_context *fc)
> +{
> + struct ntfs_sb_info *sbi;
> +
> + sbi = ntfs_zalloc(sizeof(struct ntfs_sb_info));
Not related to your patch, but why does ntfs3 have kmalloc wrappers
like this?
next prev parent reply other threads:[~2021-08-16 12:36 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-16 2:46 Kari Argillander
2021-08-16 2:47 ` [RFC PATCH 1/4] fs/ntfs3: Use new api for mounting Kari Argillander
2021-08-16 3:23 ` Kari Argillander
2021-08-16 12:17 ` Christoph Hellwig
2021-08-16 13:19 ` Kari Argillander
2021-08-16 12:36 ` Christoph Hellwig [this message]
2021-08-16 13:14 ` Kari Argillander
2021-08-16 13:24 ` Pali Rohár
2021-08-16 13:40 ` Christian Brauner
2021-08-16 13:59 ` Kari Argillander
2021-08-16 14:21 ` Christian Brauner
2021-08-16 2:47 ` [RFC PATCH 2/4] fs/ntfs3: Remove unnecesarry mount option noatime Kari Argillander
2021-08-16 12:18 ` Christoph Hellwig
2021-08-16 12:45 ` Kari Argillander
2021-08-16 2:47 ` [RFC PATCH 3/4] fs/ntfs3: Make mount option nohidden more universal Kari Argillander
2021-08-16 2:47 ` [RFC PATCH 4/4] fs/ntfs3: Add iocharset= mount option as alias for nls= Kari Argillander
2021-08-16 3:03 ` [RFC PATCH 0/4] fs/ntfs3: Use new mount api and change some opts Kari Argillander
2021-08-16 12:27 ` your mail Christoph Hellwig
2021-08-16 12:48 ` [RFC PATCH 0/4] fs/ntfs3: Use new mount api and change some opts Kari Argillander
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210816123619.GB17355@lst.de \
--to=hch@lst.de \
--cc=almaz.alexandrovich@paragon-software.com \
--cc=kari.argillander@gmail.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ntfs3@lists.linux.dev \
--cc=pali@kernel.org \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.