fs

package
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Jun 11, 2019 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultBlksize    = uint32(1) << 12
	DefaultMaxNameLen = uint32(256)
)
View Source
const (
	DefaultInodeExpiration = 120 * time.Second
	MaxInodeCache          = 10000000 // in terms of the number of items
)
View Source
const (
	// MinInodeCacheEvictNum is used in the foreground eviction.
	// When clearing the inodes from the cache, it stops as soon as 10 inodes have been evicted.
	MinInodeCacheEvictNum = 10
	// MaxInodeCacheEvictNum is used in the back ground. We can evict 200000 inodes at max.
	MaxInodeCacheEvictNum = 200000

	BgEvictionInterval = 2 * time.Minute
)
View Source
const (
	DeleteExtentsTimeout = 600 * time.Second
)
View Source
const (
	// the expiration duration of the dentry in the cache (used internally)
	DentryValidDuration = 5 * time.Second
)
View Source
const (
	LogTimeFormat = "20060102150405000"
)
View Source
const (
	RootInode = proto.RootIno
)

Variables

View Source
var (
	// The following two are used in the FUSE cache
	// every time the lookup will be performed on the fly, and the result will not be cached
	LookupValidDuration = 5 * time.Second
	// the expiration duration of the attributes in the FUSE cache
	AttrValidDuration = 30 * time.Second
)

Functions

func ParseError

func ParseError(err error) syscall.Errno

ParseError returns the error type.

func ParseType

func ParseType(t uint32) fuseutil.DirentType

ParseType returns the dentry type.

Types

type Handle

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

type HandleCache

type HandleCache struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewHandleCache

func NewHandleCache() *HandleCache

func (*HandleCache) Assign

func (hc *HandleCache) Assign(ino uint64) fuseops.HandleID

func (*HandleCache) Get

func (hc *HandleCache) Get(hid fuseops.HandleID) *Handle

func (*HandleCache) Release

func (hc *HandleCache) Release(hid fuseops.HandleID) *Handle

type Inode

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

Inode defines the structure of an inode.

func NewInode

func NewInode(info *proto.InodeInfo) *Inode

NewInode returns a new inode.

func (*Inode) String

func (inode *Inode) String() string

String returns the string format of the inode.

type InodeCache

type InodeCache struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

InodeCache defines the structure of the inode cache.

func NewInodeCache

func NewInodeCache(exp time.Duration, maxElements int) *InodeCache

NewInodeCache returns a new inode cache.

func (*InodeCache) Delete

func (ic *InodeCache) Delete(ino uint64)

Delete deletes the inode based on the given inode ID.

func (*InodeCache) Get

func (ic *InodeCache) Get(ino uint64) *Inode

Get returns the inode based on the given inode ID.

func (*InodeCache) Put

func (ic *InodeCache) Put(inode *Inode)

Put puts the given inode into the inode cache.

type OrphanInodeList

type OrphanInodeList struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

OrphanInodeList defines the orphan inode list, which is a list of orphan inodes. An orphan inode is the inode whose nlink value is 0.

func NewOrphanInodeList

func NewOrphanInodeList() *OrphanInodeList

NewOrphanInodeList returns a new orphan inode list.

func (*OrphanInodeList) Evict

func (l *OrphanInodeList) Evict(ino uint64) bool

Evict remove the given inode from the orphan inode list, and evicts it.

func (*OrphanInodeList) Put

func (l *OrphanInodeList) Put(ino uint64)

Put puts an inode into the orphan inode list.

type Super

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

func NewSuper

func NewSuper(volname, owner, master string, icacheTimeout, lookupValid, attrValid, enSyncWrite int64) (s *Super, err error)

func (*Super) ClusterName

func (s *Super) ClusterName() string

func (*Super) CreateFile

func (s *Super) CreateFile(ctx context.Context, op *fuseops.CreateFileOp) error
func (s *Super) CreateLink(ctx context.Context, op *fuseops.CreateLinkOp) error
func (s *Super) CreateSymlink(ctx context.Context, op *fuseops.CreateSymlinkOp) error

func (*Super) Destroy

func (s *Super) Destroy()

func (*Super) FlushFile

func (s *Super) FlushFile(ctx context.Context, op *fuseops.FlushFileOp) error

func (*Super) ForgetInode

func (s *Super) ForgetInode(ctx context.Context, op *fuseops.ForgetInodeOp) error

func (*Super) GetInodeAttributes

func (s *Super) GetInodeAttributes(ctx context.Context, op *fuseops.GetInodeAttributesOp) error

func (*Super) GetXattr

func (s *Super) GetXattr(ctx context.Context, op *fuseops.GetXattrOp) error

func (*Super) InodeGet

func (s *Super) InodeGet(ino uint64) (*Inode, error)

InodeGet return the inode based on the given inode ID.

func (*Super) ListXattr

func (s *Super) ListXattr(ctx context.Context, op *fuseops.ListXattrOp) error

func (*Super) LookUpInode

func (s *Super) LookUpInode(ctx context.Context, op *fuseops.LookUpInodeOp) error

func (*Super) MkDir

func (s *Super) MkDir(ctx context.Context, op *fuseops.MkDirOp) error

func (*Super) MkNode

func (s *Super) MkNode(ctx context.Context, op *fuseops.MkNodeOp) error

func (*Super) OpenDir

func (s *Super) OpenDir(ctx context.Context, op *fuseops.OpenDirOp) error

func (*Super) OpenFile

func (s *Super) OpenFile(ctx context.Context, op *fuseops.OpenFileOp) error

func (*Super) ReadDir

func (s *Super) ReadDir(ctx context.Context, op *fuseops.ReadDirOp) error

func (*Super) ReadFile

func (s *Super) ReadFile(ctx context.Context, op *fuseops.ReadFileOp) error
func (s *Super) ReadSymlink(ctx context.Context, op *fuseops.ReadSymlinkOp) error

func (*Super) ReleaseDirHandle

func (s *Super) ReleaseDirHandle(ctx context.Context, op *fuseops.ReleaseDirHandleOp) error

func (*Super) ReleaseFileHandle

func (s *Super) ReleaseFileHandle(ctx context.Context, op *fuseops.ReleaseFileHandleOp) error

func (*Super) RemoveXattr

func (s *Super) RemoveXattr(ctx context.Context, op *fuseops.RemoveXattrOp) error

func (*Super) Rename

func (s *Super) Rename(ctx context.Context, op *fuseops.RenameOp) error

func (*Super) RmDir

func (s *Super) RmDir(ctx context.Context, op *fuseops.RmDirOp) error

func (*Super) SetInodeAttributes

func (s *Super) SetInodeAttributes(ctx context.Context, op *fuseops.SetInodeAttributesOp) error

func (*Super) SetXattr

func (s *Super) SetXattr(ctx context.Context, op *fuseops.SetXattrOp) error

func (*Super) StatFS

func (s *Super) StatFS(ctx context.Context, op *fuseops.StatFSOp) error

func (*Super) SyncFile

func (s *Super) SyncFile(ctx context.Context, op *fuseops.SyncFileOp) error
func (s *Super) Unlink(ctx context.Context, op *fuseops.UnlinkOp) error

func (*Super) WriteFile

func (s *Super) WriteFile(ctx context.Context, op *fuseops.WriteFileOp) error

Jump to

Keyboard shortcuts

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