Enabled parallel direct IO writes for passthrough examples
All these passthrough examples don't need writes to be serialized.
Actually, most file systems probably handle non serialized parallel
direct writes - the FOPEN_PARALLEL_DIRECT_WRITES flag is just
to avoid a regression for those file system that rely on serialized
DIO writes in fuse kernel. Passthrough file system forward the IO
to another file system, which actually handles that internally -
serialized in fuser kernel is not needed.
diff --git a/example/passthrough.c b/example/passthrough.c
index 5963d58..dd385c5 100644
--- a/example/passthrough.c
+++ b/example/passthrough.c
@@ -285,6 +285,7 @@
return -errno;
fi->fh = res;
+ fi->parallel_direct_writes = 1;
return 0;
}
@@ -297,6 +298,7 @@
return -errno;
fi->fh = res;
+ fi->parallel_direct_writes = 1;
return 0;
}
diff --git a/example/passthrough_fh.c b/example/passthrough_fh.c
index bc02794..51df3be 100644
--- a/example/passthrough_fh.c
+++ b/example/passthrough_fh.c
@@ -366,6 +366,7 @@
return -errno;
fi->fh = fd;
+ fi->parallel_direct_writes = 1;
return 0;
}
@@ -378,6 +379,7 @@
return -errno;
fi->fh = fd;
+ fi->parallel_direct_writes = 1;
return 0;
}
diff --git a/example/passthrough_hp.cc b/example/passthrough_hp.cc
index 9ee6fb1..1ee5352 100644
--- a/example/passthrough_hp.cc
+++ b/example/passthrough_hp.cc
@@ -836,6 +836,8 @@
if (fs.direct_io)
fi->direct_io = 1;
+ fi->parallel_direct_writes = 1;
+
Inode& inode = get_inode(e.ino);
lock_guard<mutex> g {inode.m};
inode.nopen++;
@@ -896,6 +898,8 @@
if (fs.direct_io)
fi->direct_io = 1;
+ fi->parallel_direct_writes = 1;
+
fi->fh = fd;
fuse_reply_open(req, fi);
}
diff --git a/example/passthrough_ll.c b/example/passthrough_ll.c
index 070cef1..afac6ea 100644
--- a/example/passthrough_ll.c
+++ b/example/passthrough_ll.c
@@ -775,6 +775,8 @@
else if (lo->cache == CACHE_ALWAYS)
fi->keep_cache = 1;
+ fi->parallel_direct_writes = 1;
+
err = lo_do_lookup(req, parent, name, &e);
if (err)
fuse_reply_err(req, err);
@@ -831,6 +833,9 @@
fi->direct_io = 1;
else if (lo->cache == CACHE_ALWAYS)
fi->keep_cache = 1;
+
+ fi->parallel_direct_writes = 1;
+
fuse_reply_open(req, fi);
}