// mount -i -oremount $mntpt (root ?) (shrinks dcache)
// notify invalidate dentry from inside fs
fsNode:newFSNode(&fsOptions{Sticky:false}),// TODO + Head.OnForget() -> del root.revTab[]
// XXX sticky=false -> bad - LOOKUP by client can fail (see details for revX/bigfile vvv)
// fsNode: newFSNode(&fsOptions{Sticky: false}), // TODO + Head.OnForget() -> del root.revTab[]
fsNode:newFSNode(&fsOptions{Sticky:true}),// TODO + Head.OnForget() -> del root.revTab[]
rev:rev,
zconn:zconnRev,// TODO + Head.OnForget() -> release zconn (= abort zconn.TxnCtx)
}
bfdir:=&BigFileDir{
fsNode:newFSNode(&fsOptions{Sticky:false}),// TODO + BigFileDir.OnForget()
// XXX sticky=false -> bad - LOOKUP by client can fail
// pin #788 @03fcb677f0cab3e2: expect "ack"; got "nak: _remmapblk #788 @03fcb677f0cab3e2: open /dev/shm/wcfs/1439df02dfcc41ab9dfb68e7ac4ad615f3b7d46e/@03fcb677f0cab3e2/bigfile/0000000006efe23b: No such file or directory
// ref:Zzj45iDT1E4PakvG@deca.navytux.spb.ru
// fsNode: newFSNode(&fsOptions{Sticky: false}), // TODO + BigFileDir.OnForget()
fsNode:newFSNode(&fsOptions{Sticky:true}),// TODO + BigFileDir.OnForget()
head:revDir,
fileTab:make(map[zodb.Oid]*BigFile),
δFtail:nil,// δFtail not needed/used for @revX/
...
...
@@ -2668,7 +2674,10 @@ func (head *Head) bigfopen(ctx context.Context, oid zodb.Oid) (_ *BigFile, err e
}
f:=&BigFile{
fsNode:newFSNode(&fsOptions{Sticky:false}),// TODO + BigFile.OnForget -> del .head.bfdir.fileTab[]
// XXX we currently do not handle denry-cache pressure right
// (see detail in @revX/bigfile lookup)
// fsNode: newFSNode(&fsOptions{Sticky: false}), // TODO + BigFile.OnForget -> del .head.bfdir.fileTab[]
fsNode:newFSNode(&fsOptions{Sticky:true}),// TODO + BigFile.OnForget -> del .head.bfdir.fileTab[]