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

From: Theodore Y. Ts'o
Date: Wed Dec 23 2020 - 20:57:23 EST


On Wed, Dec 23, 2020 at 10:12:54PM +0800, Zheng Yongjun wrote:
> Signed-off-by: Zheng Yongjun <zhengyongjun3@xxxxxxxxxx>

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
>