Re-use dirent gaps.
parent
622d7a176b
commit
4d18942456
|
@ -165,6 +165,7 @@ func (inode *inode) AddChild(
|
||||||
id fuse.InodeID,
|
id fuse.InodeID,
|
||||||
name string,
|
name string,
|
||||||
dt fuseutil.DirentType) {
|
dt fuseutil.DirentType) {
|
||||||
|
// Set up the entry.
|
||||||
e := fuseutil.Dirent{
|
e := fuseutil.Dirent{
|
||||||
Offset: fuse.DirOffset(len(inode.entries) + 1),
|
Offset: fuse.DirOffset(len(inode.entries) + 1),
|
||||||
Inode: id,
|
Inode: id,
|
||||||
|
@ -172,9 +173,16 @@ func (inode *inode) AddChild(
|
||||||
Type: dt,
|
Type: dt,
|
||||||
}
|
}
|
||||||
|
|
||||||
inode.entries = append(inode.entries, e)
|
// Look for a gap in which we can insert it.
|
||||||
|
for i := range inode.entries {
|
||||||
|
if inode.entries[i].Type == fuseutil.DT_Unknown {
|
||||||
|
inode.entries[i] = e
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// TODO(jacobsa): Re-use gaps.
|
// Append it to the end.
|
||||||
|
inode.entries = append(inode.entries, e)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove an entry for a child.
|
// Remove an entry for a child.
|
||||||
|
|
Loading…
Reference in New Issue