bcachefs: fix setting version_upgrade_complete
authorKent Overstreet <kent.overstreet@linux.dev>
Fri, 29 Dec 2023 22:18:56 +0000 (17:18 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Mon, 1 Jan 2024 16:46:52 +0000 (11:46 -0500)
If a superblock write hasn't happened (i.e. we never had to go rw), then
c->sb.version will be out of date w.r.t. c->disk_sb.sb->version.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/recovery.c

index c7d9074c82d97bbd6d0b893c0e3059358b6014e5..c2f183d2ffe86fe9ae85c94ce774691b32b19430 100644 (file)
@@ -868,8 +868,8 @@ use_clean:
        }
 
        mutex_lock(&c->sb_lock);
-       if (BCH_SB_VERSION_UPGRADE_COMPLETE(c->disk_sb.sb) != c->sb.version) {
-               SET_BCH_SB_VERSION_UPGRADE_COMPLETE(c->disk_sb.sb, c->sb.version);
+       if (BCH_SB_VERSION_UPGRADE_COMPLETE(c->disk_sb.sb) != le16_to_cpu(c->disk_sb.sb->version)) {
+               SET_BCH_SB_VERSION_UPGRADE_COMPLETE(c->disk_sb.sb, le16_to_cpu(c->disk_sb.sb->version));
                write_sb = true;
        }