All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Whitney <enwlinux@gmail.com>
To: Theodore Ts'o <tytso@mit.edu>
Cc: Ext4 Developers List <linux-ext4@vger.kernel.org>
Subject: Re: [PATCH] ext4: enable the lazy init thread when remounting read/write
Date: Sun, 28 May 2023 13:47:56 -0400	[thread overview]
Message-ID: <ZHOTzAzRCwaekt+9@debian-BULLSEYE-live-builder-AMD64> (raw)
In-Reply-To: <20230527035729.1001605-1-tytso@mit.edu>

* Theodore Ts'o <tytso@mit.edu>:
> In commit a44be64bbecb ("ext4: don't clear SB_RDONLY when remounting
> r/w until quota is re-enabled") we defer clearing tyhe SB_RDONLY flag
> in struct super.  However, we didn't defer when we checked sb_rdonly()
> to determine the lazy itable init thread should be enabled, with the
> next result that the lazy inode table initialization would not be
> properly started.  This can cause generic/231 to fail in ext4's
> nojournal mode.
> 
> Fix this by moving when we decide to start or stop the lazy itable
> init thread to after we clear the SB_RDONLY flag when we are
> remounting the file system read/write.
> 
> Fixes a44be64bbecb ("ext4: don't clear SB_RDONLY when remounting r/w until...")
> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
> ---
>  fs/ext4/super.c | 24 ++++++++++++------------
>  1 file changed, 12 insertions(+), 12 deletions(-)
> 
> diff --git a/fs/ext4/super.c b/fs/ext4/super.c
> index 9680fe753e59..56a5d1c469fc 100644
> --- a/fs/ext4/super.c
> +++ b/fs/ext4/super.c
> @@ -6588,18 +6588,6 @@ static int __ext4_remount(struct fs_context *fc, struct super_block *sb)
>  		}
>  	}
>  
> -	/*
> -	 * Reinitialize lazy itable initialization thread based on
> -	 * current settings
> -	 */
> -	if (sb_rdonly(sb) || !test_opt(sb, INIT_INODE_TABLE))
> -		ext4_unregister_li_request(sb);
> -	else {
> -		ext4_group_t first_not_zeroed;
> -		first_not_zeroed = ext4_has_uninit_itable(sb);
> -		ext4_register_li_request(sb, first_not_zeroed);
> -	}
> -
>  	/*
>  	 * Handle creation of system zone data early because it can fail.
>  	 * Releasing of existing data is done when we are sure remount will
> @@ -6637,6 +6625,18 @@ static int __ext4_remount(struct fs_context *fc, struct super_block *sb)
>  	if (enable_rw)
>  		sb->s_flags &= ~SB_RDONLY;
>  
> +	/*
> +	 * Reinitialize lazy itable initialization thread based on
> +	 * current settings
> +	 */
> +	if (sb_rdonly(sb) || !test_opt(sb, INIT_INODE_TABLE))
> +		ext4_unregister_li_request(sb);
> +	else {
> +		ext4_group_t first_not_zeroed;
> +		first_not_zeroed = ext4_has_uninit_itable(sb);
> +		ext4_register_li_request(sb, first_not_zeroed);
> +	}
> +
>  	if (!ext4_has_feature_mmp(sb) || sb_rdonly(sb))
>  		ext4_stop_mmpd(sbi);
>  
> -- 
> 2.31.0
>

Hi Ted:

100/100 trials of generic/231 with nojournal passed when I used kvm-xfstests
to run it on a 6.4-rc3 kernel modified with this patch.  A complete run of the
nojournal test case also passed for me without new regressions.

So,
Tested-by: Eric Whitney <enwlinux@gmail.com>

Thanks,
Eric


  reply	other threads:[~2023-05-28 17:48 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-16 17:54 6.4-rc2 xfstests-bld nojournal regression - generic/231 Eric Whitney
2023-05-27  3:57 ` [PATCH] ext4: enable the lazy init thread when remounting read/write Theodore Ts'o
2023-05-28 17:47   ` Eric Whitney [this message]
2023-05-30 19:26   ` Theodore Ts'o

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=ZHOTzAzRCwaekt+9@debian-BULLSEYE-live-builder-AMD64 \
    --to=enwlinux@gmail.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=tytso@mit.edu \
    /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.