aboutsummaryrefslogtreecommitdiff
path: root/test/test_write_cache.c
diff options
context:
space:
mode:
authorGravatar Nikolaus Rath <Nikolaus@rath.org>2016-10-15 16:09:16 -0700
committerGravatar Nikolaus Rath <Nikolaus@rath.org>2016-10-15 16:49:23 -0700
commitd49f2e77b4741706ec125cc62ea913ed5d39bd39 (patch)
treeecdb3d8c7aad836d43844333b87139a105bf1171 /test/test_write_cache.c
parent587df370419e641ed47489f08069ad5f4ca4fe5f (diff)
Unify handling of fuse_conn_info options
Instead of using command line options to modify struct fuse_conn_info before and after calling the init() handler, we now give the file system explicit control over this.
Diffstat (limited to 'test/test_write_cache.c')
-rw-r--r--test/test_write_cache.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/test/test_write_cache.c b/test/test_write_cache.c
index d2f7004..137cb8d 100644
--- a/test/test_write_cache.c
+++ b/test/test_write_cache.c
@@ -39,11 +39,20 @@ struct options {
static const struct fuse_opt option_spec[] = {
OPTION("writeback_cache", writeback),
OPTION("--data-size=%d", data_size),
- FUSE_OPT_KEY("writeback_cache", FUSE_OPT_KEY_KEEP),
FUSE_OPT_END
};
static int got_write;
+static void tfs_init (void *userdata, struct fuse_conn_info *conn)
+{
+ (void) userdata;
+
+ if(options.writeback) {
+ assert(conn->capable & FUSE_CAP_WRITEBACK_CACHE);
+ conn->want |= FUSE_CAP_WRITEBACK_CACHE;
+ }
+}
+
static int tfs_stat(fuse_ino_t ino, struct stat *stbuf) {
stbuf->st_ino = ino;
if (ino == FUSE_ROOT_ID) {
@@ -126,6 +135,7 @@ static void tfs_write(fuse_req_t req, fuse_ino_t ino, const char *buf,
}
static struct fuse_lowlevel_ops tfs_oper = {
+ .init = tfs_init,
.lookup = tfs_lookup,
.getattr = tfs_getattr,
.open = tfs_open,