fuse

package
v0.1.0-alpha1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 12, 2022 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FileTypeFilename

func FileTypeFilename(t litefs.FileType) string

FileTypeFilename returns the base name for the internal data file.

func FileTypeFromInode

func FileTypeFromInode(ino uint64) (litefs.FileType, error)

FileTypeFromInode returns the file type for the given inode offset.

func FileTypeInode

func FileTypeInode(t litefs.FileType) uint64

FileTypeInode returns the inode offset for the file type.

func ParseFilename

func ParseFilename(name string) (dbName string, fileType litefs.FileType)

ParseFilename parses a base name into database name & file type parts.

func ParseInode

func ParseInode(ino uint64) (dbID uint32, fileType litefs.FileType, err error)

ParseInode parses an inode into its database ID & file type parts.

Types

type DirHandle

type DirHandle struct {
	// contains filtered or unexported fields
}

DirHandle represents a directory handle for the root directory.

func NewDirHandle

func NewDirHandle(id uint64) *DirHandle

NewDirHandle returns a new instance of DirHandle.

func (*DirHandle) ID

func (h *DirHandle) ID() uint64

ID returns the file handle identifier.

type FileHandle

type FileHandle struct {
	// contains filtered or unexported fields
}

FileHandle represents a file system handle that points to a database file.

func NewFileHandle

func NewFileHandle(id uint64, db *litefs.DB, fileType litefs.FileType, file *os.File) *FileHandle

NewFileHandle returns a new instance of FileHandle.

func (*FileHandle) Close

func (fh *FileHandle) Close() (err error)

ID returns the file handle identifier.

func (*FileHandle) DB

func (fh *FileHandle) DB() *litefs.DB

DB returns the database associated with the file handle.

func (*FileHandle) File

func (fh *FileHandle) File() *os.File

File return the underlying file reference.

func (*FileHandle) FileType

func (fh *FileHandle) FileType() litefs.FileType

FileType return the type of database file the handle is associated with.

func (*FileHandle) GetLk

func (fh *FileHandle) GetLk(typ uint32, lockTypes []litefs.LockType) (bool, error)

Getlk returns true if one or more locks could be obtained. This function does not actually acquire the locks.

func (*FileHandle) ID

func (fh *FileHandle) ID() uint64

ID returns the file handle identifier.

func (*FileHandle) SetLk

func (fh *FileHandle) SetLk(typ uint32, lockTypes []litefs.LockType) (bool, error)

SetLk transition a lock to a new state. Only UNLCK can be performed against multiple locks. Returns false if not all locks can be transitioned.

type FileSystem

type FileSystem struct {

	// User ID for all files in the filesystem.
	Uid int

	// Group ID for all files in the filesystem.
	Gid int

	// If true, logs debug information about every FUSE call.
	Debug bool
	// contains filtered or unexported fields
}

FileSystem represents a raw interface to the FUSE file system.

func NewFileSystem

func NewFileSystem(path string, store *litefs.Store) *FileSystem

NewFileSystem returns a new instance of FileSystem.

func (*FileSystem) Access

func (fs *FileSystem) Access(cancel <-chan struct{}, input *fuse.AccessIn) (code fuse.Status)

func (*FileSystem) CopyFileRange

func (fs *FileSystem) CopyFileRange(cancel <-chan struct{}, input *fuse.CopyFileRangeIn) (written uint32, code fuse.Status)

func (*FileSystem) Create

func (fs *FileSystem) Create(cancel <-chan struct{}, input *fuse.CreateIn, name string, out *fuse.CreateOut) (code fuse.Status)

func (*FileSystem) DirHandle

func (fs *FileSystem) DirHandle(id uint64) *DirHandle

DirHandle returns a directory handle by ID.

func (*FileSystem) Fallocate

func (fs *FileSystem) Fallocate(cancel <-chan struct{}, in *fuse.FallocateIn) (code fuse.Status)

func (*FileSystem) FileHandle

func (fs *FileSystem) FileHandle(id uint64) *FileHandle

FileHandle returns a file handle by ID.

func (*FileSystem) Flush

func (fs *FileSystem) Flush(cancel <-chan struct{}, input *fuse.FlushIn) fuse.Status

func (*FileSystem) Forget

func (fs *FileSystem) Forget(nodeID, nlookup uint64)

func (*FileSystem) Fsync

func (fs *FileSystem) Fsync(cancel <-chan struct{}, input *fuse.FsyncIn) (code fuse.Status)

func (*FileSystem) FsyncDir

func (fs *FileSystem) FsyncDir(cancel <-chan struct{}, input *fuse.FsyncIn) (code fuse.Status)

func (*FileSystem) GetAttr

func (fs *FileSystem) GetAttr(cancel <-chan struct{}, input *fuse.GetAttrIn, out *fuse.AttrOut) (code fuse.Status)

func (*FileSystem) GetLk

func (fs *FileSystem) GetLk(cancel <-chan struct{}, in *fuse.LkIn, out *fuse.LkOut) (code fuse.Status)

func (*FileSystem) GetXAttr

func (fs *FileSystem) GetXAttr(cancel <-chan struct{}, header *fuse.InHeader, attr string, dest []byte) (size uint32, code fuse.Status)

func (*FileSystem) Init

func (fs *FileSystem) Init(server *fuse.Server)

This is called on processing the first request. The filesystem implementation can use the server argument to talk back to the kernel (through notify methods).

func (*FileSystem) InodeNotify

func (fs *FileSystem) InodeNotify(dbID uint32, off int64, length int64) error

InodeNotify invalidates a section of a database file in the kernel page cache.

func (fs *FileSystem) Link(cancel <-chan struct{}, input *fuse.LinkIn, name string, out *fuse.EntryOut) (code fuse.Status)

func (*FileSystem) ListXAttr

func (fs *FileSystem) ListXAttr(cancel <-chan struct{}, header *fuse.InHeader, dest []byte) (n uint32, code fuse.Status)

ListXAttr lists extended attributes as '\0' delimited byte slice, and return the number of bytes. If the buffer is too small, return ERANGE, with the required buffer size.

func (*FileSystem) Lookup

func (fs *FileSystem) Lookup(cancel <-chan struct{}, header *fuse.InHeader, name string, out *fuse.EntryOut) (code fuse.Status)

func (*FileSystem) Lseek

func (fs *FileSystem) Lseek(cancel <-chan struct{}, in *fuse.LseekIn, out *fuse.LseekOut) fuse.Status

func (*FileSystem) Mkdir

func (fs *FileSystem) Mkdir(cancel <-chan struct{}, input *fuse.MkdirIn, name string, out *fuse.EntryOut) (code fuse.Status)

func (*FileSystem) Mknod

func (fs *FileSystem) Mknod(cancel <-chan struct{}, input *fuse.MknodIn, name string, out *fuse.EntryOut) (code fuse.Status)

func (*FileSystem) Mount

func (fs *FileSystem) Mount() (err error)

Mount mounts the file system to the mount point.

func (*FileSystem) NewDirHandle

func (fs *FileSystem) NewDirHandle() *DirHandle

NewDirHandle returns a new directory handle associated with the root directory.

func (*FileSystem) NewFileHandle

func (fs *FileSystem) NewFileHandle(db *litefs.DB, fileType litefs.FileType, file *os.File) *FileHandle

NewFileHandle returns a new file handle associated with a database file.

func (*FileSystem) Open

func (fs *FileSystem) Open(cancel <-chan struct{}, input *fuse.OpenIn, out *fuse.OpenOut) (code fuse.Status)

func (*FileSystem) OpenDir

func (fs *FileSystem) OpenDir(cancel <-chan struct{}, input *fuse.OpenIn, out *fuse.OpenOut) (status fuse.Status)

func (*FileSystem) Path

func (fs *FileSystem) Path() string

Path returns the path to the mount point.

func (*FileSystem) Read

func (fs *FileSystem) Read(cancel <-chan struct{}, input *fuse.ReadIn, buf []byte) (fuse.ReadResult, fuse.Status)

func (*FileSystem) ReadDir

func (fs *FileSystem) ReadDir(cancel <-chan struct{}, input *fuse.ReadIn, l *fuse.DirEntryList) fuse.Status

func (*FileSystem) ReadDirPlus

func (fs *FileSystem) ReadDirPlus(cancel <-chan struct{}, input *fuse.ReadIn, out *fuse.DirEntryList) fuse.Status
func (fs *FileSystem) Readlink(cancel <-chan struct{}, header *fuse.InHeader) (out []byte, code fuse.Status)

func (*FileSystem) Release

func (fs *FileSystem) Release(cancel <-chan struct{}, input *fuse.ReleaseIn)

func (*FileSystem) ReleaseDir

func (fs *FileSystem) ReleaseDir(input *fuse.ReleaseIn)

func (*FileSystem) RemoveXAttr

func (fs *FileSystem) RemoveXAttr(cancel <-chan struct{}, header *fuse.InHeader, attr string) fuse.Status

func (*FileSystem) Rename

func (fs *FileSystem) Rename(cancel <-chan struct{}, input *fuse.RenameIn, oldName string, newName string) (code fuse.Status)

func (*FileSystem) Rmdir

func (fs *FileSystem) Rmdir(cancel <-chan struct{}, header *fuse.InHeader, name string) (code fuse.Status)

func (*FileSystem) SetAttr

func (fs *FileSystem) SetAttr(cancel <-chan struct{}, input *fuse.SetAttrIn, out *fuse.AttrOut) (code fuse.Status)

func (*FileSystem) SetDebug

func (fs *FileSystem) SetDebug(dbg bool)

func (*FileSystem) SetLk

func (fs *FileSystem) SetLk(cancel <-chan struct{}, in *fuse.LkIn) (code fuse.Status)

func (*FileSystem) SetLkw

func (fs *FileSystem) SetLkw(cancel <-chan struct{}, in *fuse.LkIn) (code fuse.Status)

func (*FileSystem) SetXAttr

func (fs *FileSystem) SetXAttr(cancel <-chan struct{}, input *fuse.SetXAttrIn, attr string, data []byte) fuse.Status

func (*FileSystem) StatFs

func (fs *FileSystem) StatFs(cancel <-chan struct{}, header *fuse.InHeader, out *fuse.StatfsOut) fuse.Status

func (*FileSystem) Store

func (fs *FileSystem) Store() *litefs.Store

Store returns the underlying store.

func (*FileSystem) String

func (fs *FileSystem) String() string
func (fs *FileSystem) Symlink(cancel <-chan struct{}, header *fuse.InHeader, pointedTo string, linkName string, out *fuse.EntryOut) (code fuse.Status)
func (fs *FileSystem) Unlink(cancel <-chan struct{}, input *fuse.InHeader, name string) (code fuse.Status)

func (*FileSystem) Unmount

func (fs *FileSystem) Unmount() (err error)

Unmount unmounts the file system.

func (*FileSystem) Write

func (fs *FileSystem) Write(cancel <-chan struct{}, input *fuse.WriteIn, data []byte) (written uint32, code fuse.Status)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL