Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 738e0dcf authored by Thierry Strudel's avatar Thierry Strudel
Browse files

[DO NOT MERGE] Use FUSE_SHORTCIRCUIT if available

Use a non yet maintainer reviewed kernel patch from QCOM that greatly
improves IO speed in case it is available from the device specific
kernel headers.

Bug: 24216004
Bug: 30222859
Change-Id: I4101d80082c9ad9d042dde5c620ddb309d193d52
parent 29e7e3ed
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -1221,7 +1221,13 @@ static int handle_open(struct fuse* fuse, struct fuse_handler* handler,
    }
    out.fh = ptr_to_id(h);
    out.open_flags = 0;

#ifdef FUSE_SHORTCIRCUIT
    out.lower_fd = h->fd;
#else
    out.padding = 0;
#endif

    fuse_reply(fuse, hdr->unique, &out, sizeof(out));
    return NO_STATUS;
}
@@ -1385,7 +1391,13 @@ static int handle_opendir(struct fuse* fuse, struct fuse_handler* handler,
    }
    out.fh = ptr_to_id(h);
    out.open_flags = 0;

#ifdef FUSE_SHORTCIRCUIT
    out.lower_fd = -1;
#else
    out.padding = 0;
#endif

    fuse_reply(fuse, hdr->unique, &out, sizeof(out));
    return NO_STATUS;
}
@@ -1467,6 +1479,11 @@ static int handle_init(struct fuse* fuse, struct fuse_handler* handler,
    out.major = FUSE_KERNEL_VERSION;
    out.max_readahead = req->max_readahead;
    out.flags = FUSE_ATOMIC_O_TRUNC | FUSE_BIG_WRITES;

#ifdef FUSE_SHORTCIRCUIT
    out.flags |= FUSE_SHORTCIRCUIT;
#endif

    out.max_background = 32;
    out.congestion_threshold = 32;
    out.max_write = MAX_WRITE;