2020-12-23 14:15:09

by Zheng Yongjun

[permalink] [raw]
Subject: [PATCH -next] ext4: use DEFINE_MUTEX (and mutex_init() had been too late)

Signed-off-by: Zheng Yongjun <[email protected]>
---
fs/ext4/super.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 94472044f4c1..8776f06a639d 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -59,7 +59,7 @@
#include <trace/events/ext4.h>

static struct ext4_lazy_init *ext4_li_info;
-static struct mutex ext4_li_mtx;
+static DEFINE_MUTEX(ext4_li_mtx);
static struct ratelimit_state ext4_mount_msg_ratelimit;

static int ext4_load_journal(struct super_block *, struct ext4_super_block *,
@@ -6640,7 +6640,6 @@ static int __init ext4_init_fs(void)

ratelimit_state_init(&ext4_mount_msg_ratelimit, 30 * HZ, 64);
ext4_li_info = NULL;
- mutex_init(&ext4_li_mtx);

/* Build-time check for flags consistency */
ext4_check_flag_values();
--
2.22.0


2020-12-24 01:57:53

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH -next] ext4: use DEFINE_MUTEX (and mutex_init() had been too late)

On Wed, Dec 23, 2020 at 10:12:54PM +0800, Zheng Yongjun wrote:
> Signed-off-by: Zheng Yongjun <[email protected]>

Why is mutex_init() too late? We only take the mutex after we
mounting an ext4 file system, and that can't happen until ext4_init_fs
is called.

- Ted

> fs/ext4/super.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/fs/ext4/super.c b/fs/ext4/super.c
> index 94472044f4c1..8776f06a639d 100644
> --- a/fs/ext4/super.c
> +++ b/fs/ext4/super.c
> @@ -59,7 +59,7 @@
> #include <trace/events/ext4.h>
>
> static struct ext4_lazy_init *ext4_li_info;
> -static struct mutex ext4_li_mtx;
> +static DEFINE_MUTEX(ext4_li_mtx);
> static struct ratelimit_state ext4_mount_msg_ratelimit;
>
> static int ext4_load_journal(struct super_block *, struct ext4_super_block *,
> @@ -6640,7 +6640,6 @@ static int __init ext4_init_fs(void)
>
> ratelimit_state_init(&ext4_mount_msg_ratelimit, 30 * HZ, 64);
> ext4_li_info = NULL;
> - mutex_init(&ext4_li_mtx);
>
> /* Build-time check for flags consistency */
> ext4_check_flag_values();
> --
> 2.22.0
>