Expand description
A union file system which combines multiple backend file systems into one.
A simple union file system with limited functionality, which
- uses pseudo fs to maintain the directory structures
- supports mounting a file system at “/” or and subdirectory
- supports mounting multiple file systems at different paths
- remounting another file system at the same path will evict the old one
- doesn’t support recursive mounts. If /a is a mounted file system, you can’t mount another file systems under /a.
Its main usage is to avoid virtio-fs device hotplug. With this simple union fs, a new backend file system could be mounted onto a subdirectory, instead of hot-adding another virtio-fs device. This is very convenient to manage container images at runtime.
Structs§
- Vfs
- A union fs that combines multiple backend file systems.
- VfsInode
- Data struct to store inode number for the VFS filesystem.
- VfsOptions
- vfs init options
Enums§
- VfsError
- Vfs error definition
Constants§
- CURRENT_
DIR_ CSTR - Current directory
- EMPTY_
CSTR - Emptry CSTR
- PARENT_
DIR_ CSTR - Parent directory
- PROC_
SELF_ FD_ CSTR - Proc fd directory
- SLASH_
ASCII - ASCII for slash(‘/’)
- VFS_
MAX_ INO - Maximum inode number supported by the VFS for backend file system
Traits§
- Backend
File System - BackendFileSystem abstracts all backend file systems under vfs
Functions§
- validate_
path_ component - Validate a path component. A well behaved FUSE client should never send dot, dotdot and path components containing slash (‘/’). The only exception is that LOOKUP might contain dot and dotdot to support NFS export.
Type Aliases§
- Back
File System - Type that implements BackendFileSystem and Sync and Send
- VfsIndex
- Vfs backend file system index
- VfsResult
- Vfs result