Commit bf02898b authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent 6d86c5dc
...@@ -262,14 +262,7 @@ func mount(mntpt string, root nodefs.Node, opts *fuse.MountOptions) (*fuse.Serve ...@@ -262,14 +262,7 @@ func mount(mntpt string, root nodefs.Node, opts *fuse.MountOptions) (*fuse.Serve
nodefsOpts := nodefs.NewOptions() nodefsOpts := nodefs.NewOptions()
nodefsOpts.Debug = opts.Debug nodefsOpts.Debug = opts.Debug
fsconn := nodefs.NewFileSystemConnector(root, nodefsOpts) return nodefs.Mount(mntpt, root, opts, nodefsOpts)
fssrv, err := fuse.NewServer(fsconn.RawFS(), mntpt, opts)
if err != nil {
return nil, nil, err
}
return fssrv, fsconn, nil
} }
......
...@@ -37,6 +37,12 @@ the kernel it is fully responsible for invalidating pagecache: ...@@ -37,6 +37,12 @@ the kernel it is fully responsible for invalidating pagecache:
https://lwn.net/ml/linux-fsdevel/20190315212556.9315-1-kirr%40nexedi.com/ https://lwn.net/ml/linux-fsdevel/20190315212556.9315-1-kirr%40nexedi.com/
As of 2019-Apr-25 the patch entered fuse.git#for-next:
https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git/commit/?id=ad2ba64dd489
and should likely enter mainline when 5.2 merge window opens.
Invalidations to wcfs clients are delayed until block access Invalidations to wcfs clients are delayed until block access
============================================================ ============================================================
......
...@@ -2017,8 +2017,8 @@ func main() { ...@@ -2017,8 +2017,8 @@ func main() {
// XXX tune MaxReadAhead? MaxBackground? // XXX tune MaxReadAhead? MaxBackground?
// OS cache that we populate with bigfile data is precious; // OS cache that we populate with bigfile data is precious;
// we precisely propagate ZODB invalidations into file invalidations. // we explicitly propagate ZODB invalidations into file invalidations.
PreciseDataCacheControl: true, ExplicitDataCacheControl: true,
DisableXAttrs: true, // we don't use DisableXAttrs: true, // we don't use
Debug: *debug, Debug: *debug,
...@@ -2039,10 +2039,10 @@ func main() { ...@@ -2039,10 +2039,10 @@ func main() {
if !(supports(fuse.NOTIFY_STORE_CACHE) && supports(fuse.NOTIFY_RETRIEVE_CACHE)) { if !(supports(fuse.NOTIFY_STORE_CACHE) && supports(fuse.NOTIFY_RETRIEVE_CACHE)) {
log.Fatalf("%s does not support pagecache control", kfuse) log.Fatalf("%s does not support pagecache control", kfuse)
} }
// make a bold warning if kernel does not support precise cache invalidation // make a bold warning if kernel does not support explicit cache invalidation
// (patch sent upstream; see notes.txt -> "Notes on OS pagecache control") // (patch sent upstream; see notes.txt -> "Notes on OS pagecache control")
if kinit.Flags & fuse.CAP_PRECISE_INVAL_DATA == 0 { if kinit.Flags & fuse.CAP_EXPLICIT_INVAL_DATA == 0 {
w1 := fmt.Sprintf("%s does not support precise data cache invalidation", kfuse) w1 := fmt.Sprintf("%s does not support explicit data cache invalidation", kfuse)
w2 := "-> performance will be AWFUL." w2 := "-> performance will be AWFUL."
log.Error(w1); log.Error(w2) log.Error(w1); log.Error(w2)
fmt.Fprintf(os.Stderr, "W: wcfs: %s\nW: wcfs: %s\n", w1, w2) fmt.Fprintf(os.Stderr, "W: wcfs: %s\nW: wcfs: %s\n", w1, w2)
......
...@@ -371,7 +371,9 @@ class tWatch: ...@@ -371,7 +371,9 @@ class tWatch:
t.tdb = tdb t.tdb = tdb
# python/stdio lock file object on read/write # python/stdio lock file object on read/write
# however we need both read and write to be working simultaneously # however we need both read and write to be working simultaneously.
# fdopen takes ownership of file descriptor and closes it when file object is closed.
#print('\n\n') #print('\n\n')
#os.system("ls -l %s" % tdb.path("head")) #os.system("ls -l %s" % tdb.path("head"))
#print('\n\n') #print('\n\n')
......
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