All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Sterba <dsterba@suse.cz>
To: Qu Wenruo <quwenruo@cn.fujitsu.com>
Cc: linux-btrfs@vger.kernel.org
Subject: Re: [PATCH V7 1/3] btrfs: Introduce new mount option usebackuproot to replace recovery
Date: Fri, 12 Feb 2016 14:05:12 +0100	[thread overview]
Message-ID: <20160212130512.GG4374@twin.jikos.cz> (raw)
In-Reply-To: <1453170184-22869-2-git-send-email-quwenruo@cn.fujitsu.com>

On Tue, Jan 19, 2016 at 10:23:02AM +0800, Qu Wenruo wrote:
> diff --git a/Documentation/filesystems/btrfs.txt b/Documentation/filesystems/btrfs.txt
> index c772b47..8e22d92 100644
> --- a/Documentation/filesystems/btrfs.txt
> +++ b/Documentation/filesystems/btrfs.txt
> @@ -168,10 +168,13 @@ Options with (*) are default options and will not show in the mount options.
>    notreelog
>  	Enable/disable the tree logging used for fsync and O_SYNC writes.
>  
> -  recovery
> -	Enable autorecovery attempts if a bad tree root is found at mount time.
> -	Currently this scans a list of several previous tree roots and tries to

We should still mention 'recovery' even if it's obsoleted.

> +  usebackuproot
> +	Enable attempts to use backup tree roots if a bad tree root is found at
> +	mount time.
> +	Currently this scans a list of 4 previous tree roots and tries to
>  	use the first readable.
> +	And since the mount option doesn't affect any behavior after mount,
> +	it won't be shown in mount info.
>  
>    rescan_uuid_tree
>  	Force check and rebuild procedure of the UUID tree. This should not
> diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
> index c5f40dc..47a96a7 100644
> --- a/fs/btrfs/ctree.h
> +++ b/fs/btrfs/ctree.h
> @@ -2241,7 +2241,7 @@ struct btrfs_ioctl_defrag_range_args {
>  #define BTRFS_MOUNT_ENOSPC_DEBUG	 (1 << 15)
>  #define BTRFS_MOUNT_AUTO_DEFRAG		(1 << 16)
>  #define BTRFS_MOUNT_INODE_MAP_CACHE	(1 << 17)
> -#define BTRFS_MOUNT_RECOVERY		(1 << 18)
> +#define BTRFS_MOUNT_USEBACKUPROOT	(1 << 18)
>  #define BTRFS_MOUNT_SKIP_BALANCE	(1 << 19)
>  #define BTRFS_MOUNT_CHECK_INTEGRITY	(1 << 20)
>  #define BTRFS_MOUNT_CHECK_INTEGRITY_INCLUDING_EXTENT_DATA (1 << 21)
> diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
> index c67c129..6f16557 100644
> --- a/fs/btrfs/disk-io.c
> +++ b/fs/btrfs/disk-io.c
> @@ -3141,6 +3141,12 @@ retry_root_backup:
>  
>  	fs_info->open = 1;
>  
> +	/*
> +	 * backuproot only affect mount behavior, and if open_ctree succeeded,
> +	 * no need to keep the flag
> +	 */
> +	btrfs_clear_opt(fs_info->mount_opt, USEBACKUPROOT);
> +
>  	return 0;
>  
>  fail_qgroup:
> @@ -3195,7 +3201,7 @@ fail:
>  	return err;
>  
>  recovery_tree_root:
> -	if (!btrfs_test_opt(tree_root, RECOVERY))
> +	if (!btrfs_test_opt(tree_root, USEBACKUPROOT))
>  		goto fail_tree_roots;
>  
>  	free_root_pointers(fs_info, 0);
> diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
> index 86f7fdc..0842456 100644
> --- a/fs/btrfs/super.c
> +++ b/fs/btrfs/super.c
> @@ -303,7 +303,7 @@ enum {
>  	Opt_check_integrity_print_mask, Opt_fatal_errors, Opt_rescan_uuid_tree,
>  	Opt_commit_interval, Opt_barrier, Opt_nodefrag, Opt_nodiscard,
>  	Opt_noenospc_debug, Opt_noflushoncommit, Opt_acl, Opt_datacow,
> -	Opt_datasum, Opt_treelog, Opt_noinode_cache,
> +	Opt_datasum, Opt_treelog, Opt_noinode_cache, Opt_usebackuproot,
>  #ifdef CONFIG_BTRFS_DEBUG
>  	Opt_fragment_data, Opt_fragment_metadata, Opt_fragment_all,
>  #endif
> @@ -352,7 +352,8 @@ static const match_table_t tokens = {
>  	{Opt_inode_cache, "inode_cache"},
>  	{Opt_noinode_cache, "noinode_cache"},
>  	{Opt_no_space_cache, "nospace_cache"},
> -	{Opt_recovery, "recovery"},
> +	{Opt_recovery, "recovery"}, /* deprecated */
> +	{Opt_usebackuproot, "usebackuproot"},
>  	{Opt_skip_balance, "skip_balance"},
>  	{Opt_check_integrity, "check_int"},
>  	{Opt_check_integrity_including_extent_data, "check_int_data"},
> @@ -681,8 +682,12 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
>  					     "disabling auto defrag");
>  			break;
>  		case Opt_recovery:
> -			btrfs_info(root->fs_info, "enabling auto recovery");
> -			btrfs_set_opt(info->mount_opt, RECOVERY);
> +			btrfs_warn(root->fs_info,
> +				   "'recovery' is deprecated, use 'usebackuproot' instead");
> +		case Opt_usebackuproot:
> +			btrfs_info(root->fs_info,
> +				   "trying to use backup root at mount time");
> +			btrfs_set_opt(info->mount_opt, USEBACKUPROOT);
>  			break;
>  		case Opt_skip_balance:
>  			btrfs_set_opt(info->mount_opt, SKIP_BALANCE);
> @@ -1213,8 +1218,8 @@ static int btrfs_show_options(struct seq_file *seq, struct dentry *dentry)
>  		seq_puts(seq, ",inode_cache");
>  	if (btrfs_test_opt(root, SKIP_BALANCE))
>  		seq_puts(seq, ",skip_balance");
> -	if (btrfs_test_opt(root, RECOVERY))
> -		seq_puts(seq, ",recovery");
> +	if (btrfs_test_opt(root, USEBACKUPROOT))
> +		seq_puts(seq, ",usebackuproot");

We can drop this.

>  #ifdef CONFIG_BTRFS_FS_CHECK_INTEGRITY
>  	if (btrfs_test_opt(root, CHECK_INTEGRITY_INCLUDING_EXTENT_DATA))
>  		seq_puts(seq, ",check_int_data");
> -- 
> 2.7.0
> 
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2016-02-12 13:05 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-19  2:23 [PATCH V7 0/3][PULL REQUEST] Unify 'norecovery' bahavior with other filesystems Qu Wenruo
2016-01-19  2:23 ` [PATCH V7 1/3] btrfs: Introduce new mount option usebackuproot to replace recovery Qu Wenruo
2016-02-12 13:05   ` David Sterba [this message]
2016-01-19  2:23 ` [PATCH V7 2/3] btrfs: Introduce new mount option to disable tree log replay Qu Wenruo
2016-01-19  2:23 ` [PATCH V7 3/3] btrfs: Introduce new mount option alias for nologreplay Qu Wenruo
2016-01-29  3:17 ` [PATCH V7 0/3][PULL REQUEST] Unify 'norecovery' bahavior with other filesystems Qu Wenruo
2016-02-01 23:16   ` David Sterba
2016-02-12 14:18   ` David Sterba
2016-02-14  2:05     ` Qu Wenruo

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=20160212130512.GG4374@twin.jikos.cz \
    --to=dsterba@suse.cz \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=quwenruo@cn.fujitsu.com \
    /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.