pub struct OverlayDirectoryObject {
overlay_fs: Arc<OverlayFS>,
path: String,
position: RwLock<u64>,
}Expand description
File object for OverlayFS directory operations
OverlayDirectoryObject handles reading directory entries from overlayfs, merging entries from upper and lower layers while respecting whiteout files.
Fields§
§overlay_fs: Arc<OverlayFS>§path: String§position: RwLock<u64>Implementations§
Source§impl OverlayDirectoryObject
impl OverlayDirectoryObject
pub fn new(overlay_fs: Arc<OverlayFS>, path: String) -> Self
Sourcefn collect_directory_entries(
&self,
) -> Result<Vec<DirectoryEntryInternal>, FileSystemError>
fn collect_directory_entries( &self, ) -> Result<Vec<DirectoryEntryInternal>, FileSystemError>
Collect all directory entries from all layers, handling whiteouts and merging
Sourcefn try_fs_from_mount(
mount: &Arc<MountPoint>,
) -> Result<Arc<dyn FileSystemOperations>, FileSystemError>
fn try_fs_from_mount( mount: &Arc<MountPoint>, ) -> Result<Arc<dyn FileSystemOperations>, FileSystemError>
Safe version of fs_from_mount that returns Result instead of panicking
Trait Implementations§
Source§impl ControlOps for OverlayDirectoryObject
impl ControlOps for OverlayDirectoryObject
Source§impl FileObject for OverlayDirectoryObject
impl FileObject for OverlayDirectoryObject
Source§fn seek(&self, _whence: SeekFrom) -> Result<u64, StreamError>
fn seek(&self, _whence: SeekFrom) -> Result<u64, StreamError>
Seek to a position in the file stream
Source§fn metadata(&self) -> Result<FileMetadata, StreamError>
fn metadata(&self) -> Result<FileMetadata, StreamError>
Get metadata about the file
Source§fn truncate(&self, _size: u64) -> Result<(), StreamError>
fn truncate(&self, _size: u64) -> Result<(), StreamError>
Truncate the file to the specified size Read more
fn as_any(&self) -> &dyn Any
Source§fn read_at(&self, offset: u64, buffer: &mut [u8]) -> Result<usize, StreamError>
fn read_at(&self, offset: u64, buffer: &mut [u8]) -> Result<usize, StreamError>
Read data from a specific offset without changing internal position Read more
Source§fn write_at(&self, offset: u64, buffer: &[u8]) -> Result<usize, StreamError>
fn write_at(&self, offset: u64, buffer: &[u8]) -> Result<usize, StreamError>
Write data to a specific offset without changing internal position Read more
Source§fn sync(&self) -> Result<(), StreamError>
fn sync(&self) -> Result<(), StreamError>
Synchronize file content to storage Read more
Source§impl MemoryMappingOps for OverlayDirectoryObject
impl MemoryMappingOps for OverlayDirectoryObject
Source§fn get_mapping_info(
&self,
_offset: usize,
_length: usize,
) -> Result<(usize, usize, bool), &'static str>
fn get_mapping_info( &self, _offset: usize, _length: usize, ) -> Result<(usize, usize, bool), &'static str>
Get mapping information for a region of the object Read more
Source§fn on_mapped(
&self,
_vaddr: usize,
_paddr: usize,
_length: usize,
_offset: usize,
)
fn on_mapped( &self, _vaddr: usize, _paddr: usize, _length: usize, _offset: usize, )
Notification that a mapping has been created Read more
Source§fn on_unmapped(&self, _vaddr: usize, _length: usize)
fn on_unmapped(&self, _vaddr: usize, _length: usize)
Notification that a mapping has been removed Read more
Source§fn supports_mmap(&self) -> bool
fn supports_mmap(&self) -> bool
Check if memory mapping is supported Read more
Source§fn get_mapping_info_with(
&self,
offset: usize,
length: usize,
_is_shared: bool,
) -> Result<(usize, usize, bool), &'static str>
fn get_mapping_info_with( &self, offset: usize, length: usize, _is_shared: bool, ) -> Result<(usize, usize, bool), &'static str>
Get mapping information with sharing intent. Read more
Source§fn mmap_owner_name(&self) -> String
fn mmap_owner_name(&self) -> String
Diagnostic helper: return a short owner name for logging Read more
fn resolve_fault( &self, access: &AccessKind, map: &VirtualMemoryMap, ) -> Result<ResolveFaultResult, ResolveFaultError>
Source§impl Selectable for OverlayDirectoryObject
impl Selectable for OverlayDirectoryObject
Source§fn wait_until_ready(
&self,
_interest: ReadyInterest,
_trapframe: &mut Trapframe,
_timeout_ticks: Option<u64>,
) -> SelectWaitOutcome
fn wait_until_ready( &self, _interest: ReadyInterest, _trapframe: &mut Trapframe, _timeout_ticks: Option<u64>, ) -> SelectWaitOutcome
Block the current task using the provided trapframe until the interest
becomes ready or the optional timeout (in ticks) expires. Read more
Source§fn current_ready(&self, interest: ReadyInterest) -> ReadySet
fn current_ready(&self, interest: ReadyInterest) -> ReadySet
Return current readiness for the given interest set.
Source§fn set_nonblocking(&self, _enabled: bool)
fn set_nonblocking(&self, _enabled: bool)
Enable or disable non-blocking I/O semantics on this object. Read more
Source§fn is_nonblocking(&self) -> bool
fn is_nonblocking(&self) -> bool
Query whether non-blocking I/O semantics are enabled on this object.
Source§impl StreamOps for OverlayDirectoryObject
impl StreamOps for OverlayDirectoryObject
Source§fn read(&self, buffer: &mut [u8]) -> Result<usize, StreamError>
fn read(&self, buffer: &mut [u8]) -> Result<usize, StreamError>
Read data from the stream
Source§fn write(&self, _buffer: &[u8]) -> Result<usize, StreamError>
fn write(&self, _buffer: &[u8]) -> Result<usize, StreamError>
Write data to the stream