pub struct SuperBlockHeaderV61 {
pub guid: UuidWrapperV32,
pub generation: u64,
pub root_parent_store_object_id: u64,
pub root_parent_graveyard_directory_object_id: u64,
pub root_store_object_id: u64,
pub allocator_object_id: u64,
pub journal_object_id: u64,
pub journal_checkpoint: JournalCheckpointV32,
pub super_block_journal_file_offset: u64,
pub journal_file_offsets: FxHashMap<u64, u64>,
pub reserved_metadata_space: FxHashMap<u64, u64>,
pub earliest_version: Version,
}Fields§
§guid: UuidWrapperV32The globally unique identifier for the filesystem.
generation: u64There are two super-blocks which are used in an A/B configuration. The super-block with the greatest generation number is what is used when mounting an Fxfs image; the other is discarded.
root_parent_store_object_id: u64The root parent store is an in-memory only store and serves as the backing store for the root store and the journal. The records for this store are serialized into the super-block and mutations are also recorded in the journal.
root_parent_graveyard_directory_object_id: u64The root parent needs a graveyard and there’s nowhere else to store it other than in the super-block.
root_store_object_id: u64The root object store contains all other metadata objects (including the allocator, the journal and the super-blocks) and is the parent for all other object stores.
allocator_object_id: u64This is in the root object store.
journal_object_id: u64This is in the root parent object store.
journal_checkpoint: JournalCheckpointV32Start checkpoint for the journal file.
super_block_journal_file_offset: u64Offset of the journal file when the super-block was written. If no entry is present in journal_file_offsets for a particular object, then an object might have dependencies on the journal from super_block_journal_file_offset onwards, but not earlier.
journal_file_offsets: FxHashMap<u64, u64>object id -> journal file offset. Indicates where each object has been flushed to.
reserved_metadata_space: FxHashMap<u64, u64>Key 0 maps to the total reserved metadata space (M_total), and each child store object id
maps to the metadata space borrowed by that store (B_S) as of
super_block_journal_file_offset.
earliest_version: VersionThe earliest version of Fxfs used to create any still-existing struct in the filesystem.
Note: structs in the filesystem may had been made with various different versions of Fxfs.
Implementations§
Source§impl SuperBlockHeaderV61
impl SuperBlockHeaderV61
Sourcepub fn new(
generation: u64,
root_parent_store_object_id: u64,
root_parent_graveyard_directory_object_id: u64,
root_store_object_id: u64,
allocator_object_id: u64,
journal_object_id: u64,
journal_checkpoint: JournalCheckpoint,
earliest_version: Version,
) -> Self
pub fn new( generation: u64, root_parent_store_object_id: u64, root_parent_graveyard_directory_object_id: u64, root_store_object_id: u64, allocator_object_id: u64, journal_object_id: u64, journal_checkpoint: JournalCheckpoint, earliest_version: Version, ) -> Self
Creates a new instance with random GUID.
Trait Implementations§
Source§impl Clone for SuperBlockHeaderV61
impl Clone for SuperBlockHeaderV61
Source§impl Debug for SuperBlockHeaderV61
impl Debug for SuperBlockHeaderV61
Source§impl Default for SuperBlockHeaderV61
impl Default for SuperBlockHeaderV61
Source§impl<'de> Deserialize<'de> for SuperBlockHeaderV61
impl<'de> Deserialize<'de> for SuperBlockHeaderV61
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for SuperBlockHeaderV61
Source§impl From<SuperBlockHeaderV32> for SuperBlockHeaderV61
impl From<SuperBlockHeaderV32> for SuperBlockHeaderV61
Source§fn from(header: SuperBlockHeaderV32) -> Self
fn from(header: SuperBlockHeaderV32) -> Self
Source§impl PartialEq for SuperBlockHeaderV61
impl PartialEq for SuperBlockHeaderV61
Source§impl Serialize for SuperBlockHeaderV61
impl Serialize for SuperBlockHeaderV61
impl StructuralPartialEq for SuperBlockHeaderV61
Source§impl TypeFingerprint for SuperBlockHeaderV61
impl TypeFingerprint for SuperBlockHeaderV61
fn fingerprint() -> String
Source§impl Versioned for SuperBlockHeaderV61
impl Versioned for SuperBlockHeaderV61
Source§fn max_serialized_size() -> Option<u64>
fn max_serialized_size() -> Option<u64>
fn deserialize_from<R>(reader: &mut R, _version: Version) -> Result<Self>
fn serialize_into<W>(&self, writer: &mut W) -> Result<()>
Source§impl VersionedLatest for SuperBlockHeaderV61
impl VersionedLatest for SuperBlockHeaderV61
Source§fn deserialize_from_version<R>(reader: &mut R, version: Version) -> Result<Self>
fn deserialize_from_version<R>(reader: &mut R, version: Version) -> Result<Self>
Auto Trait Implementations§
impl Freeze for SuperBlockHeaderV61
impl RefUnwindSafe for SuperBlockHeaderV61
impl Send for SuperBlockHeaderV61
impl Sync for SuperBlockHeaderV61
impl Unpin for SuperBlockHeaderV61
impl UnsafeUnpin for SuperBlockHeaderV61
impl UnwindSafe for SuperBlockHeaderV61
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
§impl<F, N> FidlIntoNative<Box<N>> for Fwhere
F: FidlIntoNative<N>,
impl<F, N> FidlIntoNative<Box<N>> for Fwhere
F: FidlIntoNative<N>,
fn fidl_into_native(self) -> Box<N>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more