Commit ab0b4a3e authored by Josef Bacik's avatar Josef Bacik Committed by David Sterba
Browse files

btrfs: add a helper to print out rescue= options



We're going to have a lot of rescue options, add a helper to collapse
the /proc/mounts output to rescue=option1:option2:option3 format.

Reviewed-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: default avatarJosef Bacik <josef@toxicpanda.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent ceafe3cc
Loading
Loading
Loading
Loading
+8 −1
Original line number Original line Diff line number Diff line
@@ -1392,11 +1392,18 @@ int btrfs_sync_fs(struct super_block *sb, int wait)
	return btrfs_commit_transaction(trans);
	return btrfs_commit_transaction(trans);
}
}


static void print_rescue_option(struct seq_file *seq, const char *s, bool *printed)
{
	seq_printf(seq, "%s%s", (*printed) ? ":" : ",rescue=", s);
	*printed = true;
}

static int btrfs_show_options(struct seq_file *seq, struct dentry *dentry)
static int btrfs_show_options(struct seq_file *seq, struct dentry *dentry)
{
{
	struct btrfs_fs_info *info = btrfs_sb(dentry->d_sb);
	struct btrfs_fs_info *info = btrfs_sb(dentry->d_sb);
	const char *compress_type;
	const char *compress_type;
	const char *subvol_name;
	const char *subvol_name;
	bool printed = false;


	if (btrfs_test_opt(info, DEGRADED))
	if (btrfs_test_opt(info, DEGRADED))
		seq_puts(seq, ",degraded");
		seq_puts(seq, ",degraded");
@@ -1429,7 +1436,7 @@ static int btrfs_show_options(struct seq_file *seq, struct dentry *dentry)
	if (btrfs_test_opt(info, NOTREELOG))
	if (btrfs_test_opt(info, NOTREELOG))
		seq_puts(seq, ",notreelog");
		seq_puts(seq, ",notreelog");
	if (btrfs_test_opt(info, NOLOGREPLAY))
	if (btrfs_test_opt(info, NOLOGREPLAY))
		seq_puts(seq, ",rescue=nologreplay");
		print_rescue_option(seq, "nologreplay", &printed);
	if (btrfs_test_opt(info, FLUSHONCOMMIT))
	if (btrfs_test_opt(info, FLUSHONCOMMIT))
		seq_puts(seq, ",flushoncommit");
		seq_puts(seq, ",flushoncommit");
	if (btrfs_test_opt(info, DISCARD_SYNC))
	if (btrfs_test_opt(info, DISCARD_SYNC))