Re: [PATCH] btrfs: re-introduce 'norecovery' mount option

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Di, 21.05.24 19:27, Qu Wenruo (wqu@xxxxxxxx) wrote:

thank you!

lgtm.

> Although 'norecovery' mount option is marked deprecated for a long time
> and a warning message is introduced during the deprecation window, it's
> still actively utilized by several projects that need a safely way to
> mount a btrfs without any writes.
>
> Furthermore this 'norecovery' mount option is supported by most major
> filesystems, which makes it harder to validate our motivation.
>
> This patch would re-introduce the 'norecovery' mount option, and output
> a message to recommend 'rescue=nologreplay' option.
>
> Link: https://lore.kernel.org/linux-btrfs/ZkxZT0J-z0GYvfy8@gardel-login/#t
> Link: https://github.com/systemd/systemd/pull/32892
> Link: https://bugzilla.suse.com/show_bug.cgi?id=1222429
> Reported-by: Lennart Poettering <lennart@xxxxxxxxxxxxxx>
> Reported-by: Jiri Slaby <jslaby@xxxxxxxx>
> Fixes: a1912f712188 ("btrfs: remove code for inode_cache and recovery mount options")
> Cc: stable@xxxxxxxxxxxxxxx # 6.8+
> Signed-off-by: Qu Wenruo <wqu@xxxxxxxx>
> ---
>  fs/btrfs/super.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
> index 2dbc930a20f7..f05cce7c8b8d 100644
> --- a/fs/btrfs/super.c
> +++ b/fs/btrfs/super.c
> @@ -119,6 +119,7 @@ enum {
>  	Opt_thread_pool,
>  	Opt_treelog,
>  	Opt_user_subvol_rm_allowed,
> +	Opt_norecovery,
>
>  	/* Rescue options */
>  	Opt_rescue,
> @@ -245,6 +246,8 @@ static const struct fs_parameter_spec btrfs_fs_parameters[] = {
>  	__fsparam(NULL, "nologreplay", Opt_nologreplay, fs_param_deprecated, NULL),
>  	/* Deprecated, with alias rescue=usebackuproot */
>  	__fsparam(NULL, "usebackuproot", Opt_usebackuproot, fs_param_deprecated, NULL),
> +	/* For compatibility only, alias for "rescue=nologreplay". */
> +	fsparam_flag("norecovery", Opt_norecovery),
>
>  	/* Debugging options. */
>  	fsparam_flag_no("enospc_debug", Opt_enospc_debug),
> @@ -438,6 +441,11 @@ static int btrfs_parse_param(struct fs_context *fc, struct fs_parameter *param)
>  		"'nologreplay' is deprecated, use 'rescue=nologreplay' instead");
>  		btrfs_set_opt(ctx->mount_opt, NOLOGREPLAY);
>  		break;
> +	case Opt_norecovery:
> +		btrfs_info(NULL,
> +"'norecovery' is for compatibility only, recommended to use 'rescue=nologreplay'");
> +		btrfs_set_opt(ctx->mount_opt, NOLOGREPLAY);
> +		break;
>  	case Opt_flushoncommit:
>  		if (result.negated)
>  			btrfs_clear_opt(ctx->mount_opt, FLUSHONCOMMIT);
> --
> 2.45.1
>
>

Lennart

--
Lennart Poettering, Berlin




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux