All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nikolay Borisov <nborisov@suse.com>
To: linux-btrfs@vger.kernel.org
Cc: Su Yue <Damenly_Su@gmx.com>, Nikolay Borisov <nborisov@suse.com>
Subject: [PATCH 1/4] btrfs: Call find_fsid from find_fsid_inprogress
Date: Fri, 10 Jan 2020 14:11:32 +0200	[thread overview]
Message-ID: <20200110121135.7386-2-nborisov@suse.com> (raw)
In-Reply-To: <20200110121135.7386-1-nborisov@suse.com>

From: Su Yue <Damenly_Su@gmx.com>

Since find_fsid_inprogress should also handle the case in which an fs
didn't change its FSID make it call find_fsid directly. This makes the
code in device_list_add simpler by eliminating a conditional call of
find_fsid. No functional changes.

Signed-off-by: Su Yue <Damenly_Su@gmx.com>
Signed-off-by: Nikolay Borisov <nborisov@suse.com>
---
 fs/btrfs/volumes.c | 19 ++++++-------------
 1 file changed, 6 insertions(+), 13 deletions(-)

diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index fa48589bd924..0bac8a31edff 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -671,7 +671,9 @@ static int btrfs_open_one_device(struct btrfs_fs_devices *fs_devices,

 /*
  * Handle scanned device having its CHANGING_FSID_V2 flag set and the fs_devices
- * being created with a disk that has already completed its fsid change.
+ * being created with a disk that has already completed its fsid change. Such
+ * disk can belong to an fs which has its FSID changed or to one which doesn't.
+ * Handle both cases here.
  */
 static struct btrfs_fs_devices *find_fsid_inprogress(
 					struct btrfs_super_block *disk_super)
@@ -687,7 +689,7 @@ static struct btrfs_fs_devices *find_fsid_inprogress(
 		}
 	}

-	return NULL;
+	return find_fsid(disk_super->fsid, NULL);
 }


@@ -736,19 +738,10 @@ static noinline struct btrfs_device *device_list_add(const char *path,
 					BTRFS_SUPER_FLAG_CHANGING_FSID_V2);

 	if (fsid_change_in_progress) {
-		if (!has_metadata_uuid) {
-			/*
-			 * When we have an image which has CHANGING_FSID_V2 set
-			 * it might belong to either a filesystem which has
-			 * disks with completed fsid change or it might belong
-			 * to fs with no UUID changes in effect, handle both.
-			 */
+		if (!has_metadata_uuid)
 			fs_devices = find_fsid_inprogress(disk_super);
-			if (!fs_devices)
-				fs_devices = find_fsid(disk_super->fsid, NULL);
-		} else {
+		else
 			fs_devices = find_fsid_changed(disk_super);
-		}
 	} else if (has_metadata_uuid) {
 		fs_devices = find_fsid(disk_super->fsid,
 				       disk_super->metadata_uuid);
--
2.17.1


  reply	other threads:[~2020-01-10 12:11 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-10 12:11 [PATCH 0/4] More split-brain fixes for metadata uuid feature Nikolay Borisov
2020-01-10 12:11 ` Nikolay Borisov [this message]
2020-01-10 15:24   ` [PATCH 1/4] btrfs: Call find_fsid from find_fsid_inprogress Josef Bacik
2020-01-10 12:11 ` [PATCH 2/4] btrfs: Factor out metadata_uuid code from find_fsid Nikolay Borisov
2020-01-10 15:25   ` Josef Bacik
2020-01-10 12:11 ` [PATCH 3/4] btrfs: Handle another split brain scenario with metadata uuid feature Nikolay Borisov
2020-01-10 15:29   ` Josef Bacik
2020-01-21 15:16   ` David Sterba
2020-01-10 12:11 ` [PATCH 4/4] btrfs: Fix split-brain handling when changing FSID to metadata uuid Nikolay Borisov
2020-01-10 15:58   ` Josef Bacik
2020-01-14 17:14 ` [PATCH 0/4] More split-brain fixes for metadata uuid feature David Sterba
2020-01-21 15:23   ` David Sterba

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=20200110121135.7386-2-nborisov@suse.com \
    --to=nborisov@suse.com \
    --cc=Damenly_Su@gmx.com \
    --cc=linux-btrfs@vger.kernel.org \
    /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.