mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
[vfs] kernfs: Enable leak checking consistently.
There were some instances where we were not enabling leak checking. PiperOrigin-RevId: 333418571
This commit is contained in:
@@ -280,6 +280,7 @@ func (fs *filesystem) newRootInode(creds *auth.Credentials, mode linux.FileMode)
|
||||
i := &inode{fs: fs}
|
||||
i.InodeAttrs.Init(creds, linux.UNNAMED_MAJOR, fs.devMinor, 1, linux.ModeDirectory|0755)
|
||||
i.OrderedChildren.Init(kernfs.OrderedChildrenOptions{})
|
||||
i.EnableLeakCheck()
|
||||
i.dentry.Init(i)
|
||||
i.nodeID = 1
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ func newInode(fs *filesystem, hostFD int, fileType linux.FileMode, isTTY bool) (
|
||||
canMap: fileType == linux.S_IFREG,
|
||||
}
|
||||
i.pf.inode = i
|
||||
i.refs.EnableLeakCheck()
|
||||
i.EnableLeakCheck()
|
||||
|
||||
// Non-seekable files can't be memory mapped, assert this.
|
||||
if !i.seekable && i.canMap {
|
||||
@@ -193,7 +193,7 @@ type inode struct {
|
||||
locks vfs.FileLocks
|
||||
|
||||
// When the reference count reaches zero, the host fd is closed.
|
||||
refs inodeRefs
|
||||
inodeRefs
|
||||
|
||||
// hostFD contains the host fd that this file was originally created from,
|
||||
// which must be available at time of restore.
|
||||
@@ -435,19 +435,9 @@ func (i *inode) SetStat(ctx context.Context, fs *vfs.Filesystem, creds *auth.Cre
|
||||
return nil
|
||||
}
|
||||
|
||||
// IncRef implements kernfs.Inode.IncRef.
|
||||
func (i *inode) IncRef() {
|
||||
i.refs.IncRef()
|
||||
}
|
||||
|
||||
// TryIncRef implements kernfs.Inode.TryIncRef.
|
||||
func (i *inode) TryIncRef() bool {
|
||||
return i.refs.TryIncRef()
|
||||
}
|
||||
|
||||
// DecRef implements kernfs.Inode.DecRef.
|
||||
func (i *inode) DecRef(ctx context.Context) {
|
||||
i.refs.DecRef(func() {
|
||||
i.inodeRefs.DecRef(func() {
|
||||
if i.wouldBlock {
|
||||
fdnotifier.RemoveFD(int32(i.hostFD))
|
||||
}
|
||||
|
||||
@@ -574,6 +574,7 @@ var _ Inode = (*StaticDirectory)(nil)
|
||||
func NewStaticDir(creds *auth.Credentials, devMajor, devMinor uint32, ino uint64, perm linux.FileMode, children map[string]*Dentry, fdOpts GenericDirectoryFDOptions) *Dentry {
|
||||
inode := &StaticDirectory{}
|
||||
inode.Init(creds, devMajor, devMinor, ino, perm, fdOpts)
|
||||
inode.EnableLeakCheck()
|
||||
|
||||
dentry := &Dentry{}
|
||||
dentry.Init(inode)
|
||||
|
||||
Reference in New Issue
Block a user