Commit 3a0ecd39 authored by Kirill Smelkov's avatar Kirill Smelkov

X wcfs: Switch sticky=true everywhere

ref:Zzj45iDT1E4PakvG@deca.navytux.spb.ru
parent 5abd20f2
...@@ -2596,13 +2596,19 @@ func (root *Root) lookup(name string, fctx *fuse.Context) (_ *Head, err error) { ...@@ -2596,13 +2596,19 @@ func (root *Root) lookup(name string, fctx *fuse.Context) (_ *Head, err error) {
// echo 2 >/proc/sys/vm/drop_caches (root) // echo 2 >/proc/sys/vm/drop_caches (root)
// mount -i -oremount $mntpt (root ?) (shrinks dcache) // mount -i -oremount $mntpt (root ?) (shrinks dcache)
// notify invalidate dentry from inside fs // 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, rev: rev,
zconn: zconnRev, // TODO + Head.OnForget() -> release zconn (= abort zconn.TxnCtx) zconn: zconnRev, // TODO + Head.OnForget() -> release zconn (= abort zconn.TxnCtx)
} }
bfdir := &BigFileDir{ 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, head: revDir,
fileTab: make(map[zodb.Oid]*BigFile), fileTab: make(map[zodb.Oid]*BigFile),
δFtail: nil, // δFtail not needed/used for @revX/ δ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 ...@@ -2668,7 +2674,10 @@ func (head *Head) bigfopen(ctx context.Context, oid zodb.Oid) (_ *BigFile, err e
} }
f := &BigFile{ 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[]
head: head, head: head,
zfile: zfile, zfile: zfile,
blksize: blksize, blksize: blksize,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment