@@ -14,7 +14,10 @@ use crate::{
14
14
engine:: {
15
15
event:: get_engine_listener_list,
16
16
strat_engine:: {
17
- backstore:: { metadata:: BDA , range_alloc:: RangeAllocator , MDADataSize } ,
17
+ backstore:: {
18
+ metadata:: { BDAExtendedSize , MDADataSize , BDA } ,
19
+ range_alloc:: RangeAllocator ,
20
+ } ,
18
21
serde_structs:: { BaseBlockDevSave , Recordable } ,
19
22
} ,
20
23
BlockDev , BlockDevState , DevUuid , EngineEvent , MaybeDbusPath ,
@@ -58,7 +61,7 @@ impl StratBlockDev {
58
61
user_info : Option < String > ,
59
62
hardware_info : Option < String > ,
60
63
) -> StratisResult < StratBlockDev > {
61
- let mut segments = vec ! [ ( Sectors ( 0 ) , bda. size ( ) ) ] ;
64
+ let mut segments = vec ! [ ( Sectors ( 0 ) , bda. extended_size ( ) . sectors ( ) ) ] ;
62
65
segments. extend ( upper_segments) ;
63
66
let allocator = RangeAllocator :: new ( bda. dev_size ( ) , & segments) ?;
64
67
@@ -110,8 +113,8 @@ impl StratBlockDev {
110
113
111
114
// ALL SIZE METHODS (except size(), which is in BlockDev impl.)
112
115
/// The number of Sectors on this device used by Stratis for metadata
113
- pub fn metadata_size ( & self ) -> Sectors {
114
- self . bda . size ( )
116
+ pub fn metadata_size ( & self ) -> BDAExtendedSize {
117
+ self . bda . extended_size ( )
115
118
}
116
119
117
120
/// The number of Sectors on this device not allocated for any purpose.
@@ -161,7 +164,7 @@ impl BlockDev for StratBlockDev {
161
164
162
165
fn state ( & self ) -> BlockDevState {
163
166
// TODO: Implement support for other BlockDevStates
164
- if self . used . used ( ) > self . bda . size ( ) {
167
+ if self . used . used ( ) > self . metadata_size ( ) . sectors ( ) {
165
168
BlockDevState :: InUse
166
169
} else {
167
170
BlockDevState :: NotInUse
0 commit comments