From: Kari Argillander <kari.argillander@gmail.com>
To: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>,
ntfs3@lists.linux.dev
Cc: "Kari Argillander" <kari.argillander@gmail.com>,
"Christoph Hellwig" <hch@lst.de>,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
"Pali Rohár" <pali@kernel.org>,
"Matthew Wilcox" <willy@infradead.org>,
"Christian Brauner" <christian.brauner@ubuntu.com>
Subject: [PATCH v3 5/9] fs/ntfs3: Init spi more in init_fs_context than fill_super
Date: Sun, 29 Aug 2021 12:56:10 +0300 [thread overview]
Message-ID: <20210829095614.50021-6-kari.argillander@gmail.com> (raw)
In-Reply-To: <20210829095614.50021-1-kari.argillander@gmail.com>
init_fs_context() is meant to initialize s_fs_info (spi). Move spi
initializing code there which we can initialize before fill_super().
Signed-off-by: Kari Argillander <kari.argillander@gmail.com>
---
fs/ntfs3/super.c | 41 ++++++++++++++++++++++-------------------
1 file changed, 22 insertions(+), 19 deletions(-)
diff --git a/fs/ntfs3/super.c b/fs/ntfs3/super.c
index 99102a146cf5..b2a3f947542b 100644
--- a/fs/ntfs3/super.c
+++ b/fs/ntfs3/super.c
@@ -870,7 +870,7 @@ static int ntfs_fill_super(struct super_block *sb, struct fs_context *fc)
const struct VOLUME_INFO *info;
u32 idx, done, bytes;
struct ATTR_DEF_ENTRY *t;
- u16 *upcase = NULL;
+ u16 *upcase;
u16 *shared;
bool is_ro;
struct MFT_REF ref;
@@ -885,9 +885,6 @@ static int ntfs_fill_super(struct super_block *sb, struct fs_context *fc)
sb->s_time_gran = NTFS_TIME_GRAN; // 100 nsec
sb->s_xattr = ntfs_xattr_handlers;
- ratelimit_state_init(&sbi->msg_ratelimit, DEFAULT_RATELIMIT_INTERVAL,
- DEFAULT_RATELIMIT_BURST);
-
sbi->options->nls = ntfs_load_nls(sbi->options->nls_name);
if (IS_ERR(sbi->options->nls)) {
sbi->options->nls = NULL;
@@ -917,12 +914,6 @@ static int ntfs_fill_super(struct super_block *sb, struct fs_context *fc)
sb->s_maxbytes = 0xFFFFFFFFull << sbi->cluster_bits;
#endif
- mutex_init(&sbi->compress.mtx_lznt);
-#ifdef CONFIG_NTFS3_LZX_XPRESS
- mutex_init(&sbi->compress.mtx_xpress);
- mutex_init(&sbi->compress.mtx_lzx);
-#endif
-
/*
* Load $Volume. This should be done before LogFile
* 'cause 'sbi->volume.ni' is used 'ntfs_set_state'
@@ -1207,11 +1198,7 @@ static int ntfs_fill_super(struct super_block *sb, struct fs_context *fc)
goto out;
}
- sbi->upcase = upcase = kvmalloc(0x10000 * sizeof(short), GFP_KERNEL);
- if (!upcase) {
- err = -ENOMEM;
- goto out;
- }
+ upcase = sbi->upcase;
for (idx = 0; idx < (0x10000 * sizeof(short) >> PAGE_SHIFT); idx++) {
const __le16 *src;
@@ -1421,10 +1408,21 @@ static int ntfs_init_fs_context(struct fs_context *fc)
goto ok;
sbi = kzalloc(sizeof(struct ntfs_sb_info), GFP_NOFS);
- if (!sbi) {
- kfree(opts);
- return -ENOMEM;
- }
+ if (!sbi)
+ goto free_opts;
+
+ sbi->upcase = kvmalloc(0x10000 * sizeof(short), GFP_KERNEL);
+ if (!sbi->upcase)
+ goto free_sbi;
+
+ ratelimit_state_init(&sbi->msg_ratelimit, DEFAULT_RATELIMIT_INTERVAL,
+ DEFAULT_RATELIMIT_BURST);
+
+ mutex_init(&sbi->compress.mtx_lznt);
+#ifdef CONFIG_NTFS3_LZX_XPRESS
+ mutex_init(&sbi->compress.mtx_xpress);
+ mutex_init(&sbi->compress.mtx_lzx);
+#endif
sbi->options = opts;
fc->s_fs_info = sbi;
@@ -1433,6 +1431,11 @@ static int ntfs_init_fs_context(struct fs_context *fc)
fc->ops = &ntfs_context_ops;
return 0;
+free_opts:
+ kfree(opts);
+free_sbi:
+ kfree(sbi);
+ return -ENOMEM;
}
// clang-format off
--
2.25.1
next prev parent reply other threads:[~2021-08-29 9:56 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-29 9:56 [PATCH v3 0/9] fs/ntfs3: Use new mount api and change some opts Kari Argillander
2021-08-29 9:56 ` [PATCH v3 1/9] fs/ntfs3: Remove unnecesarry mount option noatime Kari Argillander
2021-08-29 9:56 ` [PATCH v3 2/9] fs/ntfs3: Remove unnecesarry remount flag handling Kari Argillander
2021-08-29 9:56 ` [PATCH v3 3/9] fs/ntfs3: Convert mount options to pointer in sbi Kari Argillander
2021-08-29 9:56 ` [PATCH v3 4/9] fs/ntfs3: Use new api for mounting Kari Argillander
2021-08-29 9:56 ` Kari Argillander [this message]
2021-08-29 9:56 ` [PATCH v3 6/9] fs/ntfs3: Make mount option nohidden more universal Kari Argillander
2021-08-29 9:56 ` [PATCH v3 7/9] fs/ntfs3: Add iocharset= mount option as alias for nls= Kari Argillander
2021-08-29 9:56 ` [PATCH v3 8/9] fs/ntfs3: Rename mount option no_acl_rules > (no)acl_rules Kari Argillander
2021-08-29 10:16 ` Pali Rohár
2021-08-29 11:49 ` Kari Argillander
2021-08-29 9:56 ` [PATCH v3 9/9] fs/ntfs3: Show uid/gid always in show_options() Kari Argillander
2021-08-29 10:36 ` Pali Rohár
2021-09-07 7:36 ` [PATCH v3 0/9] fs/ntfs3: Use new mount api and change some opts Kari Argillander
2021-09-07 16:14 ` Konstantin Komarov
[not found] ` <CAHp75Vd==Dm1s=WK9p2q3iEBSHxN-1spHmmtZ21eRNoqyJ5v=Q@mail.gmail.com>
2021-09-07 20:47 ` Kari Argillander
2021-09-08 9:00 ` Andy Shevchenko
2021-09-08 10:32 ` Konstantin Komarov
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=20210829095614.50021-6-kari.argillander@gmail.com \
--to=kari.argillander@gmail.com \
--cc=almaz.alexandrovich@paragon-software.com \
--cc=christian.brauner@ubuntu.com \
--cc=hch@lst.de \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox