mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 18:09:56 +00:00
btrfs: re-introduce 'norecovery' mount option
commit440861b1a0upstream. Although 'norecovery' mount option was marked as deprecated for a long time and a warning message was printed during the deprecation window, it's still actively utilized by several projects that need a safer way to mount a btrfs without any writes. Furthermore this 'norecovery' mount option is supported by other major filesystems, which makes it less clear what's our motivation to remove it. 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@poettering.net> Reported-by: Jiri Slaby <jslaby@suse.com> Fixes:a1912f7121("btrfs: remove code for inode_cache and recovery mount options") CC: stable@vger.kernel.org # 6.8+ Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
24bd565099
commit
aa660331c0
@@ -119,6 +119,7 @@ enum {
|
|||||||
Opt_thread_pool,
|
Opt_thread_pool,
|
||||||
Opt_treelog,
|
Opt_treelog,
|
||||||
Opt_user_subvol_rm_allowed,
|
Opt_user_subvol_rm_allowed,
|
||||||
|
Opt_norecovery,
|
||||||
|
|
||||||
/* Rescue options */
|
/* Rescue options */
|
||||||
Opt_rescue,
|
Opt_rescue,
|
||||||
@@ -245,6 +246,8 @@ static const struct fs_parameter_spec btrfs_fs_parameters[] = {
|
|||||||
__fsparam(NULL, "nologreplay", Opt_nologreplay, fs_param_deprecated, NULL),
|
__fsparam(NULL, "nologreplay", Opt_nologreplay, fs_param_deprecated, NULL),
|
||||||
/* Deprecated, with alias rescue=usebackuproot */
|
/* Deprecated, with alias rescue=usebackuproot */
|
||||||
__fsparam(NULL, "usebackuproot", Opt_usebackuproot, fs_param_deprecated, NULL),
|
__fsparam(NULL, "usebackuproot", Opt_usebackuproot, fs_param_deprecated, NULL),
|
||||||
|
/* For compatibility only, alias for "rescue=nologreplay". */
|
||||||
|
fsparam_flag("norecovery", Opt_norecovery),
|
||||||
|
|
||||||
/* Debugging options. */
|
/* Debugging options. */
|
||||||
fsparam_flag_no("enospc_debug", Opt_enospc_debug),
|
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");
|
"'nologreplay' is deprecated, use 'rescue=nologreplay' instead");
|
||||||
btrfs_set_opt(ctx->mount_opt, NOLOGREPLAY);
|
btrfs_set_opt(ctx->mount_opt, NOLOGREPLAY);
|
||||||
break;
|
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:
|
case Opt_flushoncommit:
|
||||||
if (result.negated)
|
if (result.negated)
|
||||||
btrfs_clear_opt(ctx->mount_opt, FLUSHONCOMMIT);
|
btrfs_clear_opt(ctx->mount_opt, FLUSHONCOMMIT);
|
||||||
|
|||||||
Reference in New Issue
Block a user