22
33use crate :: bootloader:: Bootloader ;
44use crate :: bootupd:: list_dev_current_root;
5- use crate :: freezethaw :: fsfreeze_thaw_cycle ;
5+
66use crate :: model:: SavedState ;
77use crate :: util:: SignalTerminationGuard ;
88use anyhow:: { bail, Context , Result } ;
@@ -134,22 +134,7 @@ impl SavedState {
134134 }
135135 }
136136
137- #[ cfg( any( target_arch = "powerpc64" , target_arch = "s390x" ) ) ]
138- Bootloader :: GrubCC | Bootloader :: SystemdBoot => {
139- let arch = if cfg ! ( target_arch = "powerpc64" ) {
140- "powerpc64"
141- } else {
142- "s390x"
143- } ;
144-
145- anyhow:: bail!( "Only Grub is supported for {arch}" ) ;
146- }
147-
148- #[ cfg( any(
149- target_arch = "x86_64" ,
150- target_arch = "aarch64" ,
151- target_arch = "riscv64"
152- ) ) ]
137+ #[ cfg( efi_arch) ]
153138 Bootloader :: GrubCC | Bootloader :: SystemdBoot => {
154139 use crate :: efi:: Efi ;
155140 let efi = Efi :: default ( ) ;
@@ -201,6 +186,7 @@ impl SavedState {
201186 bail ! ( "{} already exists" , statepath. display( ) ) ;
202187 }
203188
189+ #[ cfg( efi_arch) ]
204190 Bootloader :: GrubCC | Bootloader :: SystemdBoot => {
205191 bail ! ( "{} already exists in the ESP" , Self :: STATEFILE_NAME ) ;
206192 }
@@ -211,6 +197,7 @@ impl SavedState {
211197/// Write-lock guard for statefile, protecting against concurrent state updates.
212198#[ derive( Debug ) ]
213199pub ( crate ) struct StateLockGuard {
200+ #[ allow( dead_code) ]
214201 pub ( crate ) sysroot_path : Utf8PathBuf ,
215202 pub ( crate ) sysroot : Dir ,
216203 #[ allow( dead_code) ]
@@ -234,39 +221,22 @@ impl StateLockGuard {
234221 return Ok ( ( ) ) ;
235222 }
236223
237- #[ cfg( any( target_arch = "powerpc64" , target_arch = "s390x" ) ) ]
238- #[ context( "Updating state" ) ]
239- pub ( crate ) fn update_state (
240- & mut self ,
241- state : & SavedState ,
242- bootloader : Bootloader ,
243- ) -> Result < ( ) > {
244- let arch = if cfg ! ( target_arch = "powerpc64" ) {
245- "powerpc64"
246- } else {
247- "s390x"
248- } ;
249-
250- if bootloader != Bootloader :: Grub {
251- anyhow:: bail!( "Found bootloader: {bootloader}. Only Grub is supported for {arch}" ) ;
252- }
253-
254- self . write_grub_statefile ( state)
255- }
256-
257224 /// Atomically replace the on-disk state with a new version.
258- #[ cfg( not( any( target_arch = "powerpc64" , target_arch = "s390x" ) ) ) ]
259225 #[ context( "Updating state" ) ]
260226 pub ( crate ) fn update_state (
261227 & mut self ,
262228 state : & SavedState ,
263229 bootloader : Bootloader ,
264230 ) -> Result < ( ) > {
231+ #[ cfg( not( efi_arch) ) ]
232+ return self . write_grub_statefile ( state) ;
233+
265234 if bootloader == Bootloader :: Grub {
266235 return self . write_grub_statefile ( state) ;
267236 }
268237
269238 use crate :: efi:: Efi ;
239+ use crate :: freezethaw:: fsfreeze_thaw_cycle;
270240
271241 let device = get_parent_device ( & self . sysroot ) ?;
272242 let all_esps = device
0 commit comments