@@ -577,8 +577,9 @@ u64 bch2_recovery_passes_from_stable(u64 v)
577577
578578static bool check_version_upgrade (struct bch_fs * c )
579579{
580- unsigned latest_compatible = bch2_latest_compatible_version (c -> sb .version );
581580 unsigned latest_version = bcachefs_metadata_version_current ;
581+ unsigned latest_compatible = min (latest_version ,
582+ bch2_latest_compatible_version (c -> sb .version ));
582583 unsigned old_version = c -> sb .version_upgrade_complete ?: c -> sb .version ;
583584 unsigned new_version = 0 ;
584585
@@ -597,7 +598,7 @@ static bool check_version_upgrade(struct bch_fs *c)
597598 new_version = latest_version ;
598599 break ;
599600 case BCH_VERSION_UPGRADE_none :
600- new_version = old_version ;
601+ new_version = min ( old_version , latest_version ) ;
601602 break ;
602603 }
603604 }
@@ -774,7 +775,7 @@ int bch2_fs_recovery(struct bch_fs *c)
774775 goto err ;
775776 }
776777
777- if (!( c -> opts .nochanges && c -> opts . norecovery ) ) {
778+ if (!c -> opts .nochanges ) {
778779 mutex_lock (& c -> sb_lock );
779780 bool write_sb = false;
780781
@@ -804,15 +805,15 @@ int bch2_fs_recovery(struct bch_fs *c)
804805 if (bch2_check_version_downgrade (c )) {
805806 struct printbuf buf = PRINTBUF ;
806807
807- prt_str (& buf , "Version downgrade required:\n " );
808+ prt_str (& buf , "Version downgrade required:" );
808809
809810 __le64 passes = ext -> recovery_passes_required [0 ];
810811 bch2_sb_set_downgrade (c ,
811812 BCH_VERSION_MINOR (bcachefs_metadata_version_current ),
812813 BCH_VERSION_MINOR (c -> sb .version ));
813814 passes = ext -> recovery_passes_required [0 ] & ~passes ;
814815 if (passes ) {
815- prt_str (& buf , " running recovery passes: " );
816+ prt_str (& buf , "\n running recovery passes: " );
816817 prt_bitflags (& buf , bch2_recovery_passes ,
817818 bch2_recovery_passes_from_stable (le64_to_cpu (passes )));
818819 }
0 commit comments