Commit 254d9afe authored by Julius Athenstaedt's avatar Julius Athenstaedt Committed by Ramon Nou
Browse files

feature flag for writeback

parent ae0c8e83
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -125,14 +125,20 @@ init_handler(void* userdata, struct fuse_conn_info* conn) {
    struct u_data* ud = (struct u_data*) userdata;
    fuse_log(FUSE_LOG_DEBUG, "init handler readahead %i direct_io %i \n",
             ud->max_readahead, ud->direct_io);
    // bool has_flag;

    // TODO check other capabilities e.g. FUSE_CAP_READDIRPLUS
    // if(lo->writeback) {
    //     has_flag = fuse_set_feature_flag(conn, FUSE_CAP_WRITEBACK_CACHE);
    //     if(lo->debug && has_flag)
    //         fuse_log(FUSE_LOG_DEBUG, "init_handler: activating writeback\n");
    // }
    if(ud->writeback) {
#if FUSE_MAJOR_VERSION > 3 ||                                                  \
        (FUSE_MAJOR_VERSION == 3 && FUSE_MINOR_VERSION >= 12)
        fuse_set_feature_flag(conn, FUSE_CAP_WRITEBACK_CACHE);
#else
        // for older fuse versions like on the ubuntu22
        conn->want |= FUSE_CAP_WRITEBACK_CACHE;
#endif
        if(ud->debug)
            fuse_log(FUSE_LOG_DEBUG,
                     "init_handler: try to activate writeback\n");
    }
    // if(lo->flock && conn->capable & FUSE_CAP_FLOCK_LOCKS) {
    //     has_flag = fuse_set_feature_flag(conn, FUSE_CAP_FLOCK_LOCKS);
    //     if(lo->debug && has_flag)